1、在主机hosts文件绑定域名,内容为自己姓名缩写,要求使用域名访问靶机的cms
编辑hosts文件,添加
192.168.142.144 wyh.com |

域名访问测试
http://wyh.com/cms/ |

2、针对域名进行渗透测试,编写渗透测试报告与漏洞挖掘报告两个文件
信息收集
指纹识别
查看网站指纹信息

目录扫描
爆破

漏洞挖掘
目录遍历漏洞1

目录遍历漏洞2

信息泄露

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

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

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

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

反射型XSS漏洞

存储型XSS
插入留言

后台管理员查看

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

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

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

尝试查询出数据库名
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=搜索 |

接下来是表名,但是这里有字符数限制那么只能使用
(select group_concat(table_name) from information_schema.tables where table_schema = 'cms') |

万能密码

登录测试

SQL注入2
注入出表列数

注入出数据库名称

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

注入出数据库的表名
http://wyh.com/cms/show.php?id=-34 UNION |

接下来就是注入出表的列名,以cms_users表为例
http://wyh.com/cms/show.php?id=-34 UNION |

最后是查询出表的内容,账户admin,密码e10adc3949ba59abbe56e057f20f883e (是123456的32为小写MD5加密)
http://wyh.com/cms/show.php?id=-34 UNION |

3、修复cms的漏洞并且验证修复效果
弱密码
在设置密码时满足四分之三原则,密码中要包含数字、大写字母、小写字母、其他字符四种的任意三种
渗透测试报告按照提交的模板写
漏洞挖掘报告包含发现漏洞的思路,信息收集过程,漏洞修复结果
