能力值:
( LV2,RANK:10 )
2 楼
/Less-1/?id=100' union select database(),user(),version();%00
能力值:
( LV2,RANK:10 )
3 楼
你是没有把最后的limit 部分的语句给注释掉吧?
能力值:
( LV2,RANK:10 )
4 楼
对了,请教一下啊,你用的什么浏览器啊?
能力值:
( LV2,RANK:10 )
5 楼
http://43.247.91.228:84/Less-1/?id=-1%27%20union%20select%201,2,3--%20-
能力值:
( LV2,RANK:10 )
6 楼
自行解决了,因为后端代码限制只取一行输出到页面,必须要将前面一条语句产生逻辑错误(返回空值)。产生逻辑错误的方法可以给一个没有的参数或者and 1=2这类
能力值:
( LV2,RANK:10 )
7 楼
自行解决了,因为后端代码限制只取一行输出到页面,必须要将前面一条语句产生逻辑错误(返回空值)。产生逻辑错误的方法可以给一个没有的参数或者and 1=2这类
能力值:
( LV2,RANK:10 )
8 楼
xjojox
你是没有把最后的limit 部分的语句给注释掉吧?
火狐啊
能力值:
( LV2,RANK:10 )
9 楼
首先我的建议使用 order by 猜字段,好处它留下的痕迹更少,通常在数据库日记中只留下很少的错误,二个好处就是使用二分查找法来找到正确的值。
对于你出现的情况呢?有以下原因:
1:查看源代码可以发现,并没有循环取出数据。所以当用id=1的时候执行的结果只有一条记录。
解决方法:
1:把id值设为非正数(负数或0),浮点数,字符型或字符串其中的一种类型。也就是id=-1的时候 就可以使用union 检索了。
最后于 2018-10-26 19:52
被大大星编辑
,原因:
能力值:
( LV2,RANK:10 )
10 楼
不知道你是不是自己搭建的测试平台,我是自己搭建的平台,谈谈我的看法:
查看less-1的源代码发现进行sql查询的语句为$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
所以将url修改为http://127.0.0.1:8080/sqli-labs/Less-1/?id=1‘union select 1,2,3 --+(重点是?后的内容,?前的内容由于服务器原因每个人不同)
此时会发现结果为
成功查询,但是并没有返回1,2,3啊 因为源代码里面只返回了用户名和密码
所以需要让union前的语句无效,即将id改为一个无效的值,比如-1,修改后的结果如下
http://127.0.0.1/sqllib/Less-1/?id=-1’union select 1,2,3 --+
此时会发现返回结果如图
惊喜!2,3已经标识union后面的select语句被成功执行了,此时可以将2或者3修改为我们需要查询的东西,比如version()
查询结果如图
成功得到MySQL数据库版本
注意:不能修改1去查询数据库版本,因为第一列的内容不返回到浏览器显示,必须加--+将之后内容注释掉 不然查询会报错
如还有不懂的地方,欢迎提问