声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
---|
0x02 所用方式
0x03 使用工具
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确认注入点是否可用 成功后会打印出相关的系统信息,数据库信息,中间件版本,根据不同的环境得出的信心也会稍有变化。
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) 寻找问题继续分析 既然前端已过,那么问题应该处在后端有黑名单限制,那么就要想其他方法绕过。 分析可利用方式总结:
可利用逐一验证:
(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 总结坑点
0x09 如何防御