vlambda博客
学习文章列表

sql注入之提交参数类型小结

    今天开始正式学习sql注入方面的知识了,闲话短说,直接上货。

注:试验靶场为sqli-labs、pikachu,具体安装百度一下,很简单,不多说了。




提交参数类型

1.数字型

简单说,提交参数为数字,如下图

sql注入之提交参数类型小结

    提交的数字参数不同,显示的结构不同,我们去查看源码,可以看到他的查询语句。

sql注入之提交参数类型小结

    

    直接将我们提交的id值带入查询,并返回数据库中对应的数据,由于我设置了语句显示,所以更加直观。

sql注入之提交参数类型小结


2.字符型

平时我们在网上见到的字符型url

    例如https://xxxx.com/?id=lib,id后面带的不是数字,而是其他参数(当然这只是常见,不是绝对啊),我们返回靶场的第二关,来研究一下字符型提交。

    依旧查看源代码,修改为回显sql语句

sql注入之提交参数类型小结

    和数字型比较,我们就发现了一个不同之处,我们输入的参数1,被两个单引号包围了。

    我们使用最常用的and1=2进行判断,发现没有显示报错。

sql注入之提交参数类型小结

    这是因为输入的值和判断语句全部被单引号包含其中,变成了单纯的字符串,达不到原有的效果。

    这时候我们就要使用闭合,使原有的判读语句生效。

sql注入之提交参数类型小结

    当然,这里的不单单只有引号这种干扰我们,平时还会见到'',"",%,),}等等,就例如sqli靶场的第三关,思路已经有了,就看各位操作了。

sql注入之提交参数类型小结


3.搜索型

这里以pikachu靶场为例,老样子,修改源码,使其回显。

sql注入之提交参数类型小结

    可以直观的看到,搜索型的查询语句是这样的

select * from user where name like '%M9%' 


    这句SLQ语句就是基于用户输入的name的值在表member中搜索匹配username,但是如果输入 'and 1=1 and '%'=' 就变成了

sql注入就这样产生了。


下面分享一些搜索型注入判断小技巧

    搜索keywords‘,如果出错的话,有90%的可能性存在漏洞;搜索 keywords%,如果同样出错的话,就有95%的可能性存在漏洞;搜索keywords% 'and 1=1 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=1)看返回的情况搜索keywords% 'and 1=2 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=2)看返回的情况根据两次的返回情况来判断是不是搜索型文本框注入了


查询语句也简单说一下,就按搜索型注入简单总结一下。

1.判断字段数:

%’ order by 1 and ‘%’=’

2.判断字段显示位置:

%’ union select 1,2,3,4,5 and ‘%’=‘

3.爆库名:

%’ union select 1,2,(select database()),4,5 and ‘%’=‘

4.爆表名:

%’ union select 1,2,(select group_concat(table_name) from information_schema.tables table_schema=‘database’),4,5 and ‘%’=‘

5.爆数据:

%’ union select 1,2,(select group_concat(column_name) from information_schema.columns table_schema=‘databaseand table_name=‘table’),4,5 and ‘%’=‘

6.爆字段:

%’ union select 1,2,(select group_concat(id0x3a,user,0x3a,passwd) from database.table),4,5 and ‘%’=‘


    相信你们聪明的脑袋看一下就明白了,如果不熟悉,还是要在靶场练习一下下。