概况:
-
工具和常见的几种思想
-
常见的点
-
一套简单的CMS源码审计
-
总结
这篇是关于php;
常见的也是php的代码审计,类似java框架,asp.net,python的Django还是有漏洞之类的,只是比较固定和稀少;
像php这种语言本身就是弱语言类型(很多点都利用了弱类型比较和转换),功能函数也是奇多(导致了其与sql,xml等语言的花式组合),加之处理一个问题的方法也是奇多(其中就难保不会出现漏洞)
当然php的thinkphp框架,有机会来(这款框架就安全性没有其他几种语言那么强的安全措施,倒转还有一个烂大街的log写webshell的常见问题,以及最近挺火的远程代码执行)
一.工具和常见的几种思想 (一)工具这里 我介绍两款免费常用的审计工具和一款php编写调试工具
Seay源代码审计系统
下载地址:https://www.waitalone.cn/seay-source-code-auditv2.html
2.(PHP代码审计工具——rips)
下载地址: https://sourceforge.net/projects/rips-scanner/
使用教程: https://www.cnblogs.com/Jewel591/p/7477483.html
3.phpstorm
如果对于版本没有什么要求
直接按照http://www.3322.cc/soft/17468.html激活即可
这款工具的调试运行,作者还是多提醒一点
.php等文件必须在www文件夹下,其他的搜下就知道了
4.xdebug
这款debug暂时还没有用,不过看各位前辈经常用到,特提出来
(二)几种常见的审计思想其实个人认为就两种,由点破面,由面破点
当然还有
1.由点破面
根据经验和工具找漏洞关键词,来溯源调用过程
看是否可控,可控后看调用的输入入口
如果单个可控条件满足我们的要求,但是无法实施漏洞触发,再全局看下哪里有满足我们条件的地方,组合起来触发
其中用到我们的工具Seay源代码审计工具
2.由面破点
通读全文,理清大意,再根据问题关键词,勾画对应位置 —英语阅读
深入理解一套CMS源码就是这样
如果追求速度,那么无疑第一种最好,也是入门首选,暂时只专注于问题地方(作者目前也是用的第一种)
二.常见的点这里就不写那些有的没的了,只详细给出作者认为个人目前阶段审计挖掘常用的点
推荐学习: 1.php常见漏洞审计中弱类型比较,首当其冲,其他的函数问题大多围绕这个比较特性
== 与=== 的差别;
数组,字符,数字,对象之间的比较转换;
当然还有其他web漏洞,这里不多说
2.php常见漏洞函数还是必须要写出来有个清晰的认识,写出一些前辈的总结吧
先写出 == 与 ===的差别
=== 在两个数比较时,也会比较参数的类型
来看一个代码简单理解下
payload ?password=1e9%00*-*
字符长度满足,内容包括特殊字符且为a-zA-Z0-9,且大于9999999,%00后内容ereg不再判断
3.strcmp
判断输入密码是否相等
如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0; 如果两者相等,返回 0。
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?