ASP数据库插马小议

By lake2 http://lake2.0x54.org

 

随着技术的发展,ASP数据库插马也不是什么新鲜的东东了,相信阁下也玩过这个的吧。呵呵,那你有没有遇到过插入的asp代码被空格拆开的情况呢(即插入的每个字符之间都出现了空格)?现在,就让我们来解决这个问题。

经过对多例实际情况的分析,我发现只要出现代码被空格隔开的数据库,相应的字段的Unicode压缩属性总是“否”。相反,如过Unicode压缩属性为“是”,则可以通过该字段进行插马。

经过搜索,发现微软官方对Unicode压缩的描述:“Microsoft Access 2000 或更高版本使用 Unicode 字符编码方案来表示文本、备注和超链接字段中的数据。Unicode 将每个字符表示为两个字节……需要的存储空间比在 Access 97 或更早版本中要多……可通过将文本备注超链接字段的“Unicode 压缩属性的默认值设为来弥补 Unicode 字符表达方式所造成的影响

哦,原来开启了 Unicode 压缩的话,数据库会自动把拉丁字符(西欧语言如英语、西班牙语或德语)用1个字节来存储;如果没开启,数据库就会用2个字节(1个字节为0x00,作为文本将被自动转换为空格)存储拉丁字符,也就造成了插入的asp代码被空格隔开的情况。

那么,在这种情况下如何插马呢?

突破口就在 Unicode 压缩那儿,既然数据库不给我们压缩,那么就让我们自己来压缩吧。很简单,就是把asp代码先转化为 Unicode 然后再插入数据库。我用VB写了个小软件来实现这个功能,注意由于转换的时候容易产生不可显示的字符(将会出现?),所以要精心构造代码咯,当然你也可以捡便宜用图中那个我构造的^_^

 

 

VB来说,转换之后的代码的长度已经减少一半,嘿嘿,那这个可不可以说是对最小的ASP后门的一种突破呢?

程序可在这里下载之:http://www.0x54.org/lake2/program/a2u4hack.exe,呵呵,Enjoy It

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值