宽字节注入是什么_sqlmap宽字节注入

宽字节注入是什么_sqlmap宽字节注入在一个CTF练习的网站,看到了一个宽字节注入的题目,我是一个web萌新,没什么经验,一开始也没有想到是宽字节,还是一位朋友给我提到的,让我猛然大悟,咳咳。。。做一些总结。练习题目网站地址:http://ctf.bugku.com。一、了解一下宽字节注入原理前提:1、我们都知道,在防御SQL注入的时候,大多说都是使用的过滤特殊字符,或者使用函数将特殊字符转化为实体,就是说在字符转义,添加‘\’。这里…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在一个CTF练习的网站,看到了一个宽字节注入的题目,我是一个web萌新,没什么经验,一开始也没有想到是宽字节,还是一位朋友给我提到的,让我猛然大悟,咳咳。。。做一些总结。

练习题目网站地址:http://ctf.bugku.com。

一、了解一下宽字节注入原理

前提:

1、我们都知道,在防御SQL注入的时候,大多说都是使用的过滤特殊字符,或者使用函数将特殊字符转化为实体,就是说在字符转义,添加‘\’。这里第一条就是有这个机制。

2、设置宽字节字符集,这里为GBK字符集,GBK字符集占用两个字节。关键就在于这个设置字符集。通常有很多方法可以设置,例如:

(1) mysql_query,如mysql_query(“SET NAMES ‘gbk'”, $conn)、mysql_query(“setcharacter_set_client = gbk”, $conn)。

(2) mysql_set_charset,如mysql_set_charset(“gbk”,$conn)。

实现过程:当我们测试的时候,输入“%df‘”,这个时候如果php函数是使用的addslashes()的时候,会在冒号的前面加上’\’。也就变成了%df\’ 。对应的编码是%df%5c’.这时候网站字符集是GBK,MYSQL使用的编码也是GBK的话,就会认为%df\是一个汉“運’”,这样的话,单引号前面的\就不起作用了,从而转义失败,题目就会出现报错信息。

我们就以网站的题目测试一下:

1、查看网页源码

68e8fc92cdb6358387e77616da2ea231.png

出现字符集gb2312,这时候就应该想到宽字节注入

2、报错测试可注入

a59ab993c98399552a092fa3284479d5.png

出现了报错信息,因为构成的语句中会多出一个单引号。例如查询语句为:

$name=addslashes($_POST[‘name’])

Select * from user where name=’$name’

将我们的%df’传递进去就变成了:

Select * from user where name=’%df\’’

这样我们的单引号和前面的闭合,多出一个原来的单引号,报错。

3、查询字段数:

%df’ order by 2 %23

这里%23表示注释,意指去将后面的语句注释掉包括什么多出的单引号和limit限制只能查询一行的语句。

aa2eab0e5ec7fd52675e92ee56af0151.png

经过几次测试,确定字段数为2.

4、判断数据库:

%df’ union select 1,database() %23

4e82ac2f6cf6f3d9555ff3abdb46dbb4.png

得到数据库的 名字。

5、接着根据题目提示,给出了表名和字段名,可以直接查询字段内容

%df’ union select 1,string from sql5.key where id=1 %23

1113f57cd79eb229f242c32158b3ed88.png

个人见解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181897.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java面试说我基础太差_面试官让你回去考虑考虑

    java面试说我基础太差_面试官让你回去考虑考虑很多小伙伴不知道像MyBatis和Hibernate这种ORM框架是如何实现的,今天,我们就手撸一个ORM框架,看看ORM框架到底是如何实现的!全程实战,建议收藏!

    2022年8月22日
    7
  • python 中文文本分类[通俗易懂]

    python 中文文本分类[通俗易懂]写这篇博文用了很多时间和精力,如果这篇博文对你有帮助,希望您可以打赏给博主相国大人。哪怕只捐1毛钱,也是一种心意。通过这样的方式,也可以培养整个行业的知识产权意识。我可以和您建立更多的联系,并且在相关领域提供给您更多的资料和技术支持。赏金将用于拉萨儿童图书公益募捐手机扫一扫,即可:目标读者:初级入门学生。本文假定,你对python已经有了最基本的掌握。如果你希望能够

    2022年6月13日
    40
  • 雅虎优化35条

    雅虎优化35条[内容]尽量减少HTTP请求数[服务器]使用CDN(ContentDeliveryNetwork)[服务器]添上Expires或者Cache-ControlHTTP头[服务器]Gzip组件[css]把样式表放在顶部[js]把脚本放在底部[css]避免使用CSS表达式[js,css]把JavaScript和CSS放到外面[内容]减少DNS查找[js,css

    2022年7月13日
    17
  • 锂电池3V升12V(AH6901)低成本替代6291升压芯片

    锂电池3V升12V(AH6901)低成本替代6291升压芯片锂电池3V升12V(AH6901)低成本替代6291升压芯片应用于数码相机,移动电源,蓝牙音箱,插卡音箱、LED台灯便捷DVD,MID,移动电话等数码产品AH6901是一款小封装(SOT23-6)、CC(恒流)模式的PWM升压IC,适用于锂电池(3~4.2V)输出5V,1A的移动电源应用。AH6901输入电压范围可由最低2.6伏特到最高6伏特,输出电压3.3–20V可调整且内部MOS输出开关电流可高达2A,封装为SOT23-6,工作频率为1MHZ,可以搭配3.3uh小型贴片电感,减少成品体积,非常适

    2022年10月6日
    5
  • Windows 8系统中***客户端812错误的解决方法

    Windows 8系统中***客户端812错误的解决方法

    2021年8月27日
    66
  • Spring 中的bean 是线程安全的吗?

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:myseries cnblogs.com/myseries/p/11729800.html 结论:不是线程安全…

    2021年6月27日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号