sql注入-不同数据类型注入

admin 2024年2月16日23:27:48评论6 views字数 1414阅读4分42秒阅读模式

数据类型注入- 数字型 字符型 搜索型加密型(base64 json)等

数字型【$id】:正常注入即可,不用考虑闭合情况

字符型"$id"或者'$id'】:需要考虑闭合情况,末尾加上--+#

搜索型【'%$id%'】:需要考虑闭合情况

加密型【id=MD==】:把注入语句根据网站传递数据的编码/加密类型来编码或加密后再进行注入

闭合情况:根据报错回显或者源码来分析闭合情况

数字型注入:

sql注入-不同数据类型注入

字符型注入:

正常注入报错无回显

sql注入-不同数据类型注入

查看源码,发现使用了【' '

sql注入-不同数据类型注入

注入时闭合,成功查询出数据库

sql注入-不同数据类型注入

搜索型注入:

查看源码,获取闭合情况,使用【'%%'

sql注入-不同数据类型注入

注入时闭合

sql注入-不同数据类型注入

加密型注入:

打开发现参数被编码,看来我们的注入语句也要进行编码才行

sql注入-不同数据类型注入

将注入语句编码

sql注入-不同数据类型注入

注入成功获取数据库名

sql注入-不同数据类型注入

使用sqlmap爆破加密型注入

python sqlmap.py -u "http://127.0.0.1/news.php?base=MQ==" --dbs --tamper=base64encode.py

--tamper#利用给定的脚本篡改注入数据

运行发现出不来结果,明明手工都出来了,查看发现工具只测试了10个字段,但是有17个字段

sql注入-不同数据类型注入

使用测试--level参数加大测试力度再次进行测试

python sqlmap.py -u "http://127.0.0.1/news.php?base=MQ==" --dbs --tamper=base64encode.py --level=3

--level#测试力度(1-5)

成功爆出数据库

sql注入-不同数据类型注入

宽字节注入:

为什么产生宽字节注入?

原因是程序员为了防止SQL注入,就会调用几种转义函数,将单引号或双引号进行转义操作,转义无非便是在单或双引号前加上斜杠()进行转义 ,但这样并非安全,因为数据库使用的是宽字节编码,两个连在一起的字符会被当做是一个汉字,而在PHP使用的UTF8编码则认为是两个独立的字符,如果我们在单或双引号前添加一个字符,使其和斜杠()组合被当作一个汉字,从而保留单或双引号,使其发挥应有的作用。但添加的字符的Ascii要大于128,两个字符才能组合成汉字 ,因为前一个ascii码要大于128,才到汉字的范围 ,这一点需要注意。

转义函数:

addslashes() #函数返回在预定义字符之前添加反斜杠的字符串

mysql_real_escape_string() #函数转义 SQL 语句中使用的字符串中的特殊字符

mysql_escape_string() #转义一个字符串

addslashes()函数:单引号(')、双引号(")、反斜线()与 NULNULL 字符)这些字符都会被转义

我们给字符型注入传递的参数使用addslashes()函数包裹

sql注入-不同数据类型注入

可以发现就算闭合了【' '】依然无法注入成功,是因为我们输入的【'】被在前加上斜杠()进行了转义,无法发挥作用

sql注入-不同数据类型注入

在单或双引号前添加一个Ascii要大于128的字符,使其和斜杠()组合被当作一个汉字,从而保留单或双引号的作用即可。

Ascii大于128的字符如:%df

在注入语句【'】前添加%df,成功查询出数据库

sql注入-不同数据类型注入

使用sqlmap爆破

使用--tamper模块中的unmagicquotes.py脚本

python sqlmap.py -u "http://124.70.71.251:46715/new_list.php?id=1" --dbs --tamper=unmagicquotes.py

sql注入-不同数据类型注入

原文始发于微信公众号(小黑子安全):sql注入-不同数据类型注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月16日23:27:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   sql注入-不同数据类型注入https://cn-sec.com/archives/2497698.html

发表评论

匿名网友 填写信息