Access注入+IIS6.0实战

本文仅为了学习交流,严禁非法使用!!!
(随笔仅为平时的学习记录,若有错误请大佬指出)

存在注入点的URL:http://www.xxx.com/xx.asp?id=11

通过and 1=1 和and 1=2 来判断是否存在注入,使用and 1=1 页面返回正常

Access注入+IIS6.0实战

and 1=2 页面不正常,报错

Access注入+IIS6.0实战

判断是否是access数据库,提示无权限,基本可以确定是access数据库

Access注入+IIS6.0实战

判断是否存在admin表(根据经验,asp+access一般会有admin表),页面返回正常,存在admin表

Access注入+IIS6.0实战

判断存在哪些字段,百度搜索一些常见的字段,使用burpsuite进行探测

Access注入+IIS6.0实战
Access注入+IIS6.0实战

判断两个字段的长度

Access注入+IIS6.0实战
Access注入+IIS6.0实战

编写python脚本,爆破出用户名和密码(大佬不要喷)

Access注入+IIS6.0实战
Access注入+IIS6.0实战

爆破出用户名和密码后,登录后台,进行getshell,找到一处图片上传,白名单验证,只允许上传jpg,png,gif,但发现目标站点的web容器是iis6.0,asp站,存在解析漏洞,目录解析(/x.asp/xxx.jpg),文件解析(x.asp;.jpg),两个都可以当成asp进行解析,但测试发现目录解析是不可能的,因为不能在目标站点创建以asp结尾的文件夹,故放弃。采用文件解析,上传文件名为1.asp;.jpg,但返回包里面还是对文件进行重命名,重新命名为 uploadfile/xxxxxxxxxxxxxx.jpg,不能实现文件解析了。

Access注入+IIS6.0实战

但在数据包里面可以看到件上传的路径 uploadfile/,于是想到两种思路
第一种是更改上传路径为 uploadfile/xxx.asp;. 然后上传的文件名为xx.jpg,这样后端进行拼接的时候就会是 uploadfile/xx.asp;.xxxx.jpg 这样就会造成文件解析

Access注入+IIS6.0实战

观察返回包,看看是不是想要的结果
Access注入+IIS6.0实战

菜刀连接

Access注入+IIS6.0实战

第二种思路是采用 00 截断,由于该站点是asp站,所以成功率较高(如果是php站点的话,需要满足两个条件,php.ini中的magic_quotes_gpc设置为Off,否则会被转义,php版本必须小于5.3.4)

Access注入+IIS6.0实战

看一下返回包是不是xx.asp
Access注入+IIS6.0实战

菜刀连接,一样可以getshell

Access注入+IIS6.0实战

到此为止,不在深入
总结:对于sql注入漏洞,应该强烈过滤敏感字符,安装waf等防护软件,对于文件上传的漏洞,应该将上传的文件夹进去权限设置,不允许执行任何脚本文件或者禁止访问。

此文档仅供学习,参与违法行为与笔者无关。

上一篇:P1462-通往奥格瑞玛的道路


下一篇:.NET API 上传图片