声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
---|
- 服务器:win2003
- 中间件环境:iis6.0,sql server 2000
- 网站编写:asp
- 服务器ip:192.168.1.xx
- 开放端口:80
0x02 所用方式
- Sql注入
- IIS6.0 解析漏洞
- 一句话图片码
- Sql server 2000 sa密码猜解
- xp_cmdshell命令执行
- windows明文密码获取
0x03 使用工具
- 菜刀
- Prodump
- Sqlmap
- Mimikatz
0x04 漏洞侦查 在发现的url:newsp.asp?id=71中使用’判断是否有注入点,这个’在这里相当于构造了一条错误的sql语句让sql报错返回关于数据库的一些信息。
And 1=1正常返回结果,原因是因为1=1永远成立,而and是逻辑运算符,必须前后条件成立整个语句才成立,所以进行了输出SQL语句的结果内容。 And 1=2返回错误页面,原因是而1=2是不成立的,所以在这里就没有输出任何内容。这进一步说明WEB程序将我们输入的and 1=1带入了SQL 查询语句中进行查询,通过返回页面的不同来判断。 通过上面几点可以正常判断出此网站存在漏洞。 0x05 Sqlmap的使用 通过第一步简单的收工测试,发现网站有存在漏洞, 那么我们就可以利用已有自动注入工具sqlmap来对网站进行更深入的检测。 (1) 使用sqlmap确认注入点是否可用 成功后会打印出相关的系统信息,数据库信息,中间件版本,根据不同的环境得出的信心也会稍有变化。
代码语言:javascript复制
Sqlmap -u url
(2) 打印数据库信息 成功执行后会打印出相关的数据库信息。 sqlmap -u url –dbs
(3) 判断web后台数据库,并猜解出数据库中有哪些表 成功执行后所打印出的数据库表名。 sqlmap -u url –D 库名 –tables
(4) 得知数据库中表名后来判断我们想要的表中字段 通常来说,程序员都会对数据表进行标准命名,一般情况下后台的命名为admin,admin_user,user_admin之类的规范名称,比如这里命名为master,解释为管理的意思,那么后台登陆权限应该就是他了,所以大家要根据实际环境中去试探猜测,得出了表中所有字段名称。 sqlmap –u url –D ”库名” –T “表名” –columns
(5) 猜测表中字段数据 得出用户名密码后,由于密码是MD5加密,所以拿到MD5解密网站解密出明文密码,最后找出后台,登陆后台进行查找上传点。
0x06 上传shell文件 (1) 准备一句话木马,测试是否可以上传 上传失败,服务器做了后缀名过滤,无法上传后缀名为asp的文件。
(2) 截断修改后缀名上传 在开启抓包后发现并没有抓取到上传数据包,直接报错,说明网站是做了前端认证。
(3) 修改.asp后缀上传 修改1asp.asp为1asp.jpg绕过前端检测,在通过burp抓包后更改1asp.jpg为1asp.asp还是没有上传成功,同样报格式问题。
(4) 寻找问题继续分析 既然前端已过,那么问题应该处在后端有黑名单限制,那么就要想其他方法绕过。 分析可利用方式总结:
- iis 6.0存在有解析漏洞
- iis中间件一般会执行aspx文件
- sqlserver 2000存在xp_cmdshell命令执行和提权方式
- windows系统漏洞
可利用逐一验证:
- windows系统漏洞—服务器为内网端口映射,无法扫出系统级漏洞(pass)
- sqlserver 2000存在xp_cmdshell命令执行和提权方式—数据库权限为普通权限无法调用xp_cmdshell命令执行(pass)
- iis中间件一般会执行aspx文件,但是这里aspx同样被纳入了黑名单无法上传(pass)
- iis 6.0存在解析漏洞(可成功绕过上传)
(5) 通过解析漏洞上传shell 通过解析漏洞成功上传shell。
0x07 系统提权 (1) 菜刀连接shell,编辑上传的url地址,密码连接 菜刀连接shell成功,但告知ActiveX组建不能创建成功。
科普一下: 一般ActiveX组件来调用WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application,如果此组件被禁用,那么你就无法调用webshell执行命令。 (2) 上传aspx文件 利用解析漏洞Aspx shell上传成功,但iis关闭了对aspx文件解析,通过aspx文件获取shell失败。 (3) 通过菜刀连接数据库 用户名sa密码空连接成功,这也是幸运的,大家记住一点,虽然现在数据库版本越来越高但是不要忘记老版本的sa密码默认可为空。
(4) 使用sql xp cmdshell执行系统命令 通过菜刀上传procdump.exe到服务器,Sql语句大家自己网上自己去找吧,此时会生成一个lsass文件在当前目录下,下载此文件到本地。 D:Procdump.exe -accepteula -ma lsass.exe lsass.dmp (5) 使用Mimikatz工具破译lsass文件 自此服务器权限已拿到,端口转发登陆我就不说了,累的一批了!
0x08 总结坑点
- 前端上传认证
- 后端黑名单认证
- Activex组件被禁用
- Aspx解析被关闭
- 数据库权限为普通用户
- 针对上传文件做了文件头校验
- 对系统文件夹权限防御做的相当好
0x09 如何防御
- 对操作系统进行更替更高版本
- 关闭sql xp_cmdshell的执行
- 过滤网站注入字符串
- 对数据库表的用户名密码使用更高的加密方式
- 强加数据库sa密码强度避免被爆破和猜解