记一次对某网站的渗透测试

今天正在开开心心的逛着 B 站,突然微信头像闪动,一看,原来是小黑让我帮忙给一个网站做安全检测,他说这是他叔叔的公司,然后直接丢给我一个链接。

初步测试

拿到网址,首先打开看了一下。

看起来比较简单,注意到右下角有资讯,随便点开一篇。

存在动态参数 id,判断一下是否存在 SQL 注入,尝试使用 ?id=1586 and 1=1,直接提示参数非法!

然后继续尝试其他注入方式,依旧提示参数非法!没办法,只好祭出神器 SqlMap,一顿操作。

 sqlmap -u "http://www.xxxxx.com/view.php?id=1586"

level 1-5 都试了,依旧提示无法注入。。。看来这条路走不通了

登录后台

网站的内容是动态的,那么肯定是有后台的,尝试使用 /admin ,成功打开后台登录界面。

尝试使用弱口令登录,登录失败,并且还给我提示如下。

于是我多试了几下,到第 4 次的时候,出现了验证码。他来了他来了他终于来了,我就说怎么可能连个验证码都没有。

同时我发现,地址栏也发生了变化,由 /admin/?controller=login 变成了 /admin/?controller=login&check=vcode,多加了一个参数,尝试把那个参数删了,然后发现验证码没了。。。

然而输入账号密码点击登录之后还是会提示验证码错误,说明后台还是有检验验证码的,仔细回想,之前并没有出现验证码输入框,也并没有提示验证码错误,说明后台不是每次都校验验证码,而是有一定的条件,这个条件应该就是我的登录失败次数,登录失败一定次数后触发验证码机制。

那么他肯定是记录了登录失败次数,并且有一个唯一标识来绑定,这个唯一标识可能是 ip,用户名,设备号,cookie 等,尝试使用一个新的浏览器进行登录,发现并没有触发验证码机制,说明失败次数记录应该是和 cookie 有关(cookie 保存在浏览器中), F12 打开浏览器控制台,查看 cookie,发现存在一个名为 login_error 的 cookie,并且值为 4,和我目前登录失败次数一样,猜测这个应该就是登录失败次数了,将其删除,果然没有出现验证码,也没有提示验证码错误了,并且提示登陆失败 1 次,又重新开始计数了。那么只要删除或者修改该 cookie 的值,就可以一直尝试登录了。

于是直接使用 Burp Suite 爆破,浏览器设置代理,Burp 拦截请求,准备好常用用户名密码字典,设置 Payload,然后开始爆破。

可能我的字典不够,也可能他的密码比较复杂,并没有爆破出来。

决定用该网站的信息,针对该网站生成字典。已知公司名、网址、公司创办日期等信息。用已知的所有信息,生成好字典,重新爆破。

终于成功爆破出用户名为 admin,密码为 qxxxxxx5,和该公司的一些信息有相关,信息收集果然很有用。尝试登录,成功进入后台。心里暗自窃喜,感觉已经这次渗透成功了一半了。

拿 Shell

接下来只要找到一个上传点,上传木马,拿到 shell,这次渗透就算圆满完成了。

找到一个编辑器,可以上传图片,尝试直接上传一句话木马,提示后缀不对,发现没有网络请求,应该是前端做的校验。

修改木马后缀为 jpg,重新上传,使用 burp 拦截请求,后缀修改回 php,发送,居然上传成功了!并返回了文件地址。

使用菜刀连接,连接成功。

上传大马,访问。

成功拿到 Web Shell !!!

总结

经过此次测试,发现网站存在以下问题

后台弱口令

后台验证码机制不完善,可以轻松绕过

图片上传漏洞

简要的把情况和小黑说了一下,让他喊他叔叔去升级一下网站,修改一下密码,然后就继续逛 B 站去了。

你可能感兴趣的:(记一次对某网站的渗透测试)