本次实验的环境由安鸾渗透实战平台搭建
目标是渗透进网站拿到flag,但flag并未提示具体位置。
出于学习和记录目的,由于本人也是小白,错误的地方望指点
准备工作:
渗透工具使用:
- Burpsuite
- Sqlmap
- 蚁剑(中国菜刀)
- Whatweb
- Dirsearch
实验目的:
- 获得webshell
- 寻找flag
渗透流程:
-
信息收集、寻找渗透点
初步使用浏览器正常浏览了一遍网站,网站属于建站系统,具有电商,新闻,论坛等等功能,往往这类功能繁多的网站在后台管理处会有很多漏洞。
通过whatweb 工具得知网站指纹,该网站使用nginx搭建,属于s-cms
在网站默认页面浏览一遍后,由于实验环境并未做相应的开发,可用功能并不是很多,
所以也找不到什么渗透点
值得一提的是,新闻页面就存在SQL注入点,但一旦使用内联注入,浏览器就会停止响应(具体原因不明),导致无法从此处进行sql注入
于是使用dirsearch进行目录扫描,得到以下结果,其中有几个目录值得关注
- admin/download.php 此目录为管理员后台登录入口
- image/ 和 upload/ 目录,通常此目录的权限都都卡的不严谨
- search.php 在主页面上找不到这个搜索的入口,于是直接使用url进行访问,发现存在sql注入点
-
通过渗透点进行渗透
1. 使用burpsuite 抓取该页面的POST请求,保存至本地,接着使用sqlmap进行sql注入,成功得到数据库里的信息
2. 当前库为“scms”,在scms.SL_admin里保存了管理员账户的信息,访问
后台管理 可以直接进行登录。后台里虽然有多处可以进行文件上传,甚至还有“上传类型管理”及“文件内容管理”的窗口,但可能实验环境对此做出了限制,并未找到可以上传或写入菜刀码之处。
3. 于是转而直接使用sqlmap写webshell(原理和select ... into outfile语句一样)
sqlmap.py --os-shell
注意在选择目录时,由于网站的根目录mysql没有写入的权限,所以要输入2手动选择写入shell的目录,这时前面使用dirsearch就派上了用场,选择了upload目录成功写入了shell
4. 此时已经成功拿到了webshell,但由于sqlmap浏览的不太方便,也可以echo一个菜刀码到upload目录里,使用蚁剑或菜刀连接,应该也有更简单的方法,但是本人不会,哈哈
5. 由于本次实验要求是要找到flag,在服务器里找了个遍并没有发现,最后兜兜转转发现在数据库里。也就是说sql注入成功后,其实就能拿到flag,但把一套流程走下来对练习也有一定收获。
此处还有一个误导你的flag
实验结论:
此次实验目录探测工具dirsearch派上了极大的用场,不仅可以找到管理员登录页面、sql注入点以及具有写入权限的目录,总能发现意象不到的渗透点。可见该网站如果在真实环境下,黑客可以轻松拿到服务器的控制权以及登录管理员账号篡改网页信息,用户信息也是一览无余。
在此次实验中,可以意识到:
- 网站目录的暴露是十分危险的,攻击者可以通过遍历目录挨个寻找攻击点
- 目录权限应设置严谨
- 针对sql注入语句过滤还是不严谨