0x00:前言

上周做渗透,有一个 sql 注入,负责安全审核的人给开发说你们的程序既然还有 sql 注入,我一年也看不见几个。这句话让我又再次深刻的认识到,渗透测试常规的一些注入跨站漏洞不如以前那么盛了,有点经验的开发写东西都会去考虑到了,再加上修复方法也在逐渐的完善,逻辑类的东西也应该并重的去测。

0x01:分类

我把逻辑类的问题大概总结了一下,大概可以分为十个模块,分别是登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入 / 输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口调用模块测试。

这次记录的是第四个模块输入 / 输出模块。

0x02:输入输出模块测试

1,sql 注入

现在测试中,估计大家直接都用 sqlmap 跑的,所以就不记录手工注入了。

测试方法:如果是登录前的连接可以直接用 sqlmap -u 去跑,如果是登录后才能访问的连接,用 burp 拦截包,复制到 sqlmap 目录下随便一个 txt 文件,直接用 sqlmap -r 去跑。

经验之谈:也可以直接使用 burp 的插件 sqlipy 直接去跑,更方便,后面会总结一篇相应的博客。

修复方法:过滤参数中的特殊字符,或对字符进行转义。现在基本上项目都用框架来写,需要参数化。框架机制虽越来越完善,但不能排除此问题,没以前多了,但依然不少。

2,xss

测试方法:反射类型一般搜索功能出现的比较多,存储型的一般新增内容编辑内容中出现的比较多,测试的时候输入一小段 js 代码来验证是否会执行,以确定是否存在此问题。

经验之谈:可以先模糊测试一下,输入'"<> 来看符号有没有正常输出。如果嫌 script 中加个 alert 比较长,可以直接输入个 br 来测,看换不换行即可。如果不执行,下一步可以根据加入的 js 代码所在的环境(js 中,html 中)来进行相应的编码然后再测。这里只记录基本的测试方法,xss 个人感觉博大精深,绕过方法各异,这里不敢夸海口,总之多测多学多总结即可。

修复方法:过滤特殊符号,实体化特殊符号,过滤 js 关键字。另外建议对敏感信息设置 httponly 属性,防止 xss 攻击窃取 cookie 内容,反射类型时,尽量不要把信息回显到页面。

3,命令执行

测试方法:如果有类似接收命令到服务端执行的功能,则可以测试此问题,例如 url 中的某个参数接收命令,可以直接输入命令,看服务器是否有返回信息,或将执行结果重定向到一个文件中,查看此文件。

经验之谈:这个漏洞碰到的比较少,平时测试想到的也比较少,拿到一个功能最先想到的就是 xss、sql 注入这些,当这些漏洞测多了,就会限制住思维,建议拿到一个功能或网站时,先不着急测,先把能想到的问题点列出来,然后再去测,尽量罗列全,避免漏掉一些不常见的问题。

修复方法:过滤特殊符号,避免造成命令连接。对于可接收的命令,罗列白名单。

0x03:总结

这次记录了输入输出模块的测试相关内容,后续会继续记录其他模块。

更多关于代码审计、WEB渗透、网络安全的运维的知识,请关注微信公众号:发哥微课堂。

渗透测试业务逻辑之输入输出模块测试

相关文章:

  • 2021-10-02
  • 2021-09-09
  • 2021-12-09
  • 2022-01-08
  • 2021-08-27
  • 2021-10-10
  • 2022-12-23
  • 2021-07-18
猜你喜欢
  • 2021-11-18
  • 2021-08-12
  • 2021-05-06
  • 2022-01-07
  • 2021-12-10
  • 2021-10-04
  • 2021-12-16
相关资源
相似解决方案