1.png

先收集一下信息,使用php开发的站,web中间件Apache。放到指纹识别的网站尝试一下,没获得什么额外的信息。

2.png

3.png

扫一下端口,发现开放了21,,80,3306端口。在代理环境下用nmap会有问题,于是用了自己写的一个用http连接来扫描端口的py脚本。

4.png

5.png

接下来打开Burp,爬一下目录,同时打开御剑,爆一下目录。但是没发现敏感目录。

6.png

用Burp跑了一下后台路径字典,没爆到后台或者敏感的目录。

7.png

接下来看一下网站的内容。

发现一处提交单引号就会报错。

8.png

从报错信息看到,post提交的参数插入到sql查询语句了,而且对单引号 ’ 前添加了 进行转义。但是这个注入点从sql语句看到,是数值型注入,不需要使用 ‘ 进行闭合。
要利用这里的注入,首先不要使用 ’ 。
对这个注入点做深入的尝试。由于能回显报错信息,因此先考虑报错注入。
尝试updatexml报错。Payload:
wid=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1))

9.png

在页面里显示响应内容就是:

10.png

有waf
那这个注入点能不能利用呢?
先fuzz测试一下会过滤哪些字符。

11.png

select from ,union select , updatexml会被过滤。
过滤的关键词不多,但是select from 被过滤了。
接下来fuzz一下select from 能不能绕过过滤。

12.png

找到一种能绕过waf并且能被解析的方式。

接下来在payload中尝试一下。

13.png

14.png

能出数据了。但是可以看到并非root用户,登陆主机也有指定。
查询当前数据库。

15.png

查询表。

16.png

17.png

当前数据库有26张表。

18.png

查到有一张表名为master。
对这张master表深入查询。
有id,password,username等列。

19.png

20.png

21.png

对master表的内容查询,里面只有1条记录。查询到了其username和password。而且这个password是明文存储的。
可惜爆破不到后台路径,在Google使用inurl://和site://也没找到后台路径。
在网站首页有登陆和注册的功能,尝试使用查出来的master表的账号密码进行登陆,登陆失败。前台普通用户登陆并不使用master表的记录。
在当前数据库里面除了master表,还有张member表,查一下这个member表里面的数据。

22.png

这个表里面有6041条记录,有name,password等列。

查询表里面的记录,先查第一条记录,查询到name为admin,password为123456的md5值。
在前台使用这个账号密码登陆,登陆成功。

23.png

但是只是普通会员,而且也过期了。

在member表里面找一个不是普通会员的,看看怎样。
找到一个高级会员账号,并且爆破了它的密码明文。

24.png

这个密码看起来像是一个手机。
尝试登陆。

25.png

成功登陆,高级会员账号,而且未过期。
看下个人中心里能干什么。

26.png

基本什么都不能干。
再看下个人设置。

27.png

没有上传图片的功能点。

个人信息和修改密码目测也是存在注入的了,找回密码用Burp抓包看了一下,没发现有问题。

没有上传点,找不到后台路径,下面考虑直接在mysql中写shell。

28.png

Mysql版本5.5,没有网站绝对路径,数据库账户没写入权限。
Select into outfile 是行不通了。

考虑general_log。

29.png

General_log变量值默认是off,在这里也是off,而且也需要文件包含漏洞,看来是没戏了。
最后尝试了爆破21端口,无果。

这个网站在登陆后看文章那里有评论功能,其实可以尝试在这里xss,看后台会不会审核这个留言,而通过xss获取后台路径。不过vps刚过期,不搞这个了。

至此,对该网站的渗透结束,存在sql注入漏洞并且能够绕过waf进行利用,但是没能getshell。

Ps:这款waf是云锁waf

标签: SQL注入绕过WAF

添加新评论