那一般看的地方有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举个例子 。
- 算法|【2022/1/15】thinkphp源码无差别阅读(二十)
- IT之家1月14日消息|netusbusb共享组件中存在严重的远程代码执行漏洞
- Python双端队列实现回文检测代码示例
- 一加科技|5万行代码来稳帧!一加10 Pro的游戏全程帧率近90,直到关机
- 浏览器|全球十大浏览器,国产浏览器上榜6款,但全部复制了美国公司内核代码
- 上海市|FairySwap现已通过Certik安全审计,PriFi生态生态即将起航
- PHP|iPhone13没创新?这个功能,几大国产旗舰都抄作业了
- PHP|30岁就带着数百亿退休,他才是真正懂得激流勇退的互联网创始人
- 低代码平台想要实现复杂的业务流程,这4个条件不能少!
- 2021年Apache 年度报告出炉,哪个项目的代码贡献最多