SQL注入漏洞靶场实战-1

  • A+
所属分类:安全文章

Sqli - labs 安装与lesson1-4实战

所需环境:

1. PHP
2. MYSQL
3. Apache/Nginx

以上三项Debian都自带了,2与3直接开启即可,但是有几点要注意:

1. Debian下的MySql每次登录的时候默认需要授权,即必须使用sudo,可以修改配置文件忽略默认授权,修改方法在之前的文件有提起过.
2. Apache存放文件放在/var/www/html/目录下
3. sqli - labs 使用的PHP5编写的,但是Debian默认安装PHP7,兼容性太差,需要手动删除PHP7然后安装PHP5,安装方法前面的文章(Debian笔记)也提起过,这里不做复述.

下载安装

切换到 /var/www/html/ 目录下,使用命令:

git clone https://github.com/Audi-1/sqli-labs

下载好后,在sql-connections文件夹下的“db-creds.inc”文件
修改mysql用户名和密码为你自己的密码,数据库地址记得填写127.0.0.1,这一点在之前的文章也说过.

浏览器打开

http://127.0.0.1/sqli-labs/

为了方便下载,已经保存到当前服务器下

下载地址:http://www.langzi.fun/upload/sqli.rar

如果是WIN下的平台,使用PHPStudy搭建环境即可

Sqli Labs Lesson 1 实战笔记

这是我总结的注入大致流程,常规的注入按照此流程进行能有个头绪


SQL注入漏洞靶场实战-1

之所以先讲 1-4 章节是因为这四课都是非常基础的注入,完全可以归纳在一个知识点上.若不熟悉可以先温习前面的基础知识:MYSQL基础知识点:http://www.langzi.fun/categories/SQL-%E6%B3%A8%E5%85%A5%E6%94%BB%E5%87%BB/

判断是否存在注入

SQL注入漏洞靶场实战-1

加上单引号发现报错了,判断为字符型注入.

判断字段数

SQL注入漏洞靶场实战-1

输入4的时候报错,3正常,说明存在3个字段

判断可显示字段

SQL注入漏洞靶场实战-1

可以看到2,3的位置可以插入查询,下面来探测一些数据看看.

探测信息

SQL注入漏洞靶场实战-1

可以看到当前的数据库,用户

探测表名

SQL注入漏洞靶场实战-1

可以看到探测出来三个表,按照习惯猜测,users这个表存储的应该是用户名账号密码等信息,那么继续探测这个表有哪些字段内容.

探测列名

SQL注入漏洞靶场实战-1

根据回显,确认username,password字段就是需要的,接下来查询他们的字段内容即可.

探测数据

SQL注入漏洞靶场实战-1

得到所需信息,注入结束.

Lesson 2-4 实战

之所以1-4放在一起讲是因为注入方式一样的,只是稍微区别了一下数字型与字符串型,数字型不需要闭合,直接order by判断字段后面都一样,字符串型的需要闭合,举个例子:

lesson 1 :?id=1 ' union xxx --+ 
lesson 2 :?id=-1 union xxx --+ 
lseeon 3 :?id=-1') union xxx --+
lseeon 4 :?id=-1") union xxx --+ 

总结下:

1. 判断存在注入后,再判断是字符型还是数字型,字符型就要闭合一下
2. 像lesson1-4的注入内容直接在客户端显示了,使用上面的套路流程走一波
3. 最后面可以注释掉,也可以选择去闭合后面的,但是有些麻烦
4. 如果是数字型注入,可以使用INT溢出代替空格,即:?id=1e66union xx等同于?id=6 union xx

关于Lesson 1-4 暂时就告一段落,后面的实战练习涉及知识点才是真正常用的,比如盲注,显错注入等等,需要的知识点累计也越来越多,这是好事,关于绕过WAF注入其实就那么一些套路,什么加密混淆反复调用大小写编码之类的,往后专门出一篇文章就练习绕过WAF注入.


本文始发于微信公众号(安全研发):SQL注入漏洞靶场实战-1

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: