SQL注入漏洞靶场实战-1
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
浏览器打开
http://127.0.0.1/sqli-labs/
为了方便下载,已经保存到当前服务器下
如果是WIN下的平台,使用PHPStudy搭建环境即可
Sqli Labs Lesson 1 实战笔记
这是我总结的注入大致流程,常规的注入按照此流程进行能有个头绪
之所以先讲 1-4 章节是因为这四课都是非常基础的注入,完全可以归纳在一个知识点上.若不熟悉可以先温习前面的基础知识:MYSQL基础知识点:http://www.langzi.fun/categories/SQL-%E6%B3%A8%E5%85%A5%E6%94%BB%E5%87%BB/
判断是否存在注入
加上单引号发现报错了,判断为字符型注入.
判断字段数
输入4的时候报错,3正常,说明存在3个字段
判断可显示字段
可以看到2,3的位置可以插入查询,下面来探测一些数据看看.
探测信息
可以看到当前的数据库,用户
探测表名
可以看到探测出来三个表,按照习惯猜测,users这个表存储的应该是用户名账号密码等信息,那么继续探测这个表有哪些字段内容.
探测列名
根据回显,确认username,password字段就是需要的,接下来查询他们的字段内容即可.
探测数据
得到所需信息,注入结束.
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注入.