SQL-Labs46关order by注入姿势


SQL-Labs靶场通关教程:

SQL注入第一课

SQL无列名注入

SQL报错注入原理

简单的SQL练习,联合注入、报错注入

POST提交方式注入

HTTP头部注入

二次注入

一些绕过案例

HTTP参数污染攻击

四十六关 ORDER BY数字型注入

请求方式 注入类型 拼接方式
GET 报错、布尔盲注、延时盲注 ORDER BY $id

在这里插入图片描述
我们直接可以从界面中得知传参的参数为SORT,下面我们令参数即sort为1继续尝试输入:

?sort=1

在这里插入图片描述
我们可以看到是一个排序表格,同时我们继续尝试将sort参数变为2继续尝试:
在这里插入图片描述
可以看到按照字母顺序进行了排序,所以它便是一个使用了order by语句进行排序的查询的一种查询输出方式。
我们这里继续尝试,将参数变为1',我们可以看到它进行了报错:
在这里插入图片描述
可以看到它直接将报错信息输出了出来,所以我们之后可以进行尝试报错注入。
同时我们之前说了使用了order by,所以这里使用union注入当然是不行的,我们不必进行考虑。我们之后可以跟经常使用order by的正反排序,即为desc以及asc,当然,不加这个默认为从小到大,即为asc。
在这里插入图片描述
在这里插入图片描述
所以如果这里进行注入点判断时,我们使用order by为一个数值是没有意义的,这里我们需要使用rand函数,下面我们会谈到。

1、源码分析

<?php
include("../sql-connections/sqli-connect.php");
$id=$_GET['sort'];	
if(isset($id))
	{
   
   
	//logging the connection parameters to a file for analysis.
	$fp=fopen('result.txt','a');
	fwrite($fp,'SORT:'.$id."\n");
	fclose($fp);

	$sql = "SELECT * FROM users ORDER BY $id";
	$result = mysqli_query($con1, $sql);
	if 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值