智享技巧屋
第二套高阶模板 · 更大气的阅读体验

一次真实的渗透测试实战报告分享

发布时间:2025-12-16 15:59:46 阅读:214 次

前两天朋友找我帮忙看他们公司新上线的网站,说是刚找外包团队做完,心里不踏实,想让我帮忙“摸一摸”有没有明显漏洞。这事儿听起来挺常见,但真上手才发现,很多问题都藏在细节里。

第一步:信息收集不能省

拿到域名后没急着扫端口,先查了下备案信息和IP归属,发现用的是阿里云ECS,系统是CentOS 7.9,Web服务器是Nginx/1.20。接着用whatweb扫了一波,识别出前端用了Vue,后台疑似ThinkPHP框架。

顺手跑了下子域名爆破,结果还真挖出一个 dev.api.xxx.com,点进去一看——开发环境直接暴露在公网,还带目录遍历。下载了几个配置文件,数据库账号密码明文写在里面,这种低级错误真让人头疼。

发现SQL注入点

主站有个搜索功能,参数叫 keyword。试着加了个单引号,返回500错误;再试 keyword=1' AND '1'='1keyword=1' AND '1'='2,响应不一样,基本确认存在布尔型注入。

用sqlmap跑了一下:

sqlmap -u "https://www.xxx.com/search?keyword=test" --dbs --batch

十几分钟后跑出五六个库,包括用户表、订单表。最离谱的是,user表里密码字段叫 user_pwd,内容全是MD5,而且没加盐。拿几个常见密码反查彩虹表,秒解出管理员账户。

后台登录+文件上传漏洞

登录后台后发现有个“广告图上传”功能。抓包看了下,后端只校验了Content-Type,没做文件头检测。改个shell.php为jpg格式,再把Content-Type改成image/jpeg,直接上传成功。

访问上传路径,一句话木马跑起来了。用蚁剑连上去,发现权限是nginx用户,不能提权,但已经能读写网站目录。顺手导了下日志,发现每天都有爬虫在扫这个站的/wp-admin,虽然根本没装WordPress。

修复建议落地到搭建环节

很多人觉得渗透测试是上线后的事,其实从建站第一天就得防着。比如:

  • 开发环境绝不允许绑定公网域名,可以用IP+host访问
  • 配置文件里的敏感信息要加密,或者用环境变量注入
  • 数据库密码别用root,单独建个低权限账号
  • 文件上传必须校验扩展名、MIME、文件头,最好存到对象存储
  • 所有输入参数都要过滤,别信前端验证

还有个小细节:他们在robots.txt里写了 Disallow: /adminDisallow: /backup,这不是等于告诉黑客哪儿有料?该屏蔽的就彻底屏蔽,别留线索。

真实世界没有完美防御

这次测试花了不到三天,发现高危漏洞3个,中危4个。朋友看完报告脸都绿了,赶紧让外包团队停更补洞。其实这类情况太普遍了,尤其小公司为了赶进度,安全往往被忽略。

建站不是搭完就能躺平的事。定期做一轮自查,哪怕自己用工具扫扫,也能避开大部分坑。别等数据被拖走才后悔。”}