那一般看的地方有SQL注入、XSS、CSRF、SSRF、XML外部实体注入等等
6.2.1. sql注入
- 如果使用了框架 , 可以分辨一下框架名称以及版本 , 去搜索一下该版本的框架是否存在漏洞 , 如果存在再去cms中验证 。 因为本篇文章主要讲我自己在cms审计上的一些经验 , 因此不多深入框架的审计部分 。
- 如果没有使用框架 , 则需要仔细的观察数据库函数 , 一般来说 , cms是将select、insert等函数进行了封装的 , 比如
$db->table(‘test’)->where(“name=admin”)便是select * from test where name=admin这种格式 , 而此时若是发现cms使用的是过滤+拼接 , 那么很有可能会出现问题 , 而如果使用了PDO , 则继续跟进涉及到table , order by等字段的拼接去 , 因为这些字段是无法使用PDO的 。
- 参数是否用户可控
- 是否使用了预编译
使用了框架的就是搜索的关键词不一样 , 还是得看是否存在字符串拼接 , 可不可控 。
即使使用了预编译 , 但是如果在预编译之前字符串拼接了 , 那照样没有鸟用 , 该注入还是能注入 。
下面提供一般我会搜索的关键词(框架的根据你审计项目的框架的手册 , 自行搜索 。 )师傅们有想补充的也可以补充 。
insert
create
delete
update
order by
group by
where
from
limit
desc
asc
union
select
6.2.2. xss漏洞审计要素
- 是否存在全局参数过滤器 , 过滤规则是否符合安全要求 , 是否存在需过滤和不需过滤两种输出 , 页面是否控制恰当 。
- 输出时是否进行编码(HTML、JS等) 。
- 前端是否采用了Angularjs、React、vue.js等具有XSS防护功能的前端框架进行数据输出 。
如果想特意挖掘这一块 , 可以
查看是否配置了全局的拦截器、过滤器 。 检查数据输出函数 , 例如常用的输出函数有
print、print_r、echo、printf、sprintf、die、var_dump、var_export 。6.2.3. CSRF漏洞与XSS攻击相比 , CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范 , 所以被认为比XSS更具危险性 。
审计要素
- 是否在表单处存在随机token 。
- 是否存在敏感操作的表单 。
可以尝试全局搜索
csrf-token
csrf_token
csrftoken
csrf
下面是一个更新密码的操作 , 假设构造一个链接为
http://127.0.0.1/index.php?password_new=password&password_conf=password&Change=Change#的链接 , 直接发送给受害者点击 , 那么当前情况下 , 可以直接修改受害者的密码 , 因为没有进行任何的验证措施 。 当然一般代码不会这么写 , 只是拿DVWA的CSRF举个例子 。
- PHP|如何降低用户关注的非必要页面的权重传递?
- PHP|PHP到底适不适合做大型网站?
- 开源软件|嵌入式开发:技巧和窍门——引导加载程序跳转到应用程序代码
- 时隔19年的代码更新 欧空局“火星快车”将获得软件升级
- B轮融资|代码注释的艺术,优秀代码真的不需要注释吗?
- 诺基亚|听人话生成代码厉害了,国内首个自然语言生成方法级代码的AI
- aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
- AI 帮写代码 67 元/月!GitHub Copilot 搞收费“双标”,劝退大批程序员
- 产品经理|听人话生成代码厉害了,国内首个自然语言生成方法级代码的AI
- 程序员|程序员写代码也能上真人秀?
