一、前言

php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞。如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程。

入门php代码审计实际并无什么门槛要求,只需要理解基础的php语法规则,以及理解各种类型漏洞的出现原因则可以开始尝试审计php源代码。通常的漏洞演示中sql语句会直接传入php自带的函数传入数据库执行,但在实际的软件项目中,通常以面向对象的思想进行编程,则会涉及各种形式的封装,调用,以及不同风格的框架,在这个条件下,只需要保持耐心跟踪其调用过程即可。

另外关于代码审计的思路而言,一种是通读代码逐行分析逻辑,另外一种是通过正则快速定位一些问题函数,再反向定位调用过程。这两种方式也对应代码审计的工具主流的实现思路,一种是通过语法分析的过程发现漏洞,另一者是定位问题函数实现。

不管什么方式,重点还是实战阅读代码,累积经验。
以上为个人观点,谨慎吸收。

二、基础知识要求

PHP语法
主流漏洞原理

三、入门阅读 & 参考

《代码审计入门总结》:http://bbs.ichunqiu.com/thread-8954-1-1.html?from=oschina
《php手册》:http://php.net/manual/zh/
《代码审计:企业级Web代码安全架构》:https://read.douban.com/ebook/16642056/

四、审计实战

基础系列
       基础系列中的4篇文章基本是通过一些直观的小案例来让人理解从用户的交互到代码的执行这个过程中漏洞是以什么形式存在的,又是如何被利用的,初学者阅读这几篇文章可以让人更加快速的理解代码审计的过程,以及基本的审计思路。
常见WEB漏洞原理分析及利用方式——SQL注入篇 :
http://bbs.ichunqiu.com/thread-12694-1-1.html?from=oschina

常见WEB漏洞代码层原理分析及利用方式——文件操作漏洞篇 :
http://bbs.ichunqiu.com/thread-13008-1-1.html?from=oschina

常见WEB漏洞代码层原理分析及利用方式之Php代码执行篇 :
bbs.ichunqiu.com/thread-13465-1-1.html?from=oschina

常见WEB漏洞代码层原理分析及利用方式——文件操作 :
http://bbs.ichunqiu.com/thread-13408-1-1.html?from=oschina

高级系列
    高级系列的几篇其实就代码审计的整个大的领域来说并不算高级,但是都有其特色,并且大部分是从真实的软件项目开始讲解,可以让初学者理解实战中可能会遇到的一些问题,以及实战中的思考过程。

代码审计之绕过后台权限限制,继续sql注入:
http://bbs.ichunqiu.com/thread-10102-1-1.html?from=oschina

代码审计之突破路径限制删除文件:
bbs.ichunqiu.com/thread-8979-1-1.html?from=oschina

代码审计之任意用户密码找回漏洞:
http://bbs.ichunqiu.com/thread-10497-1-1.html?from=oschina

代码审计之伪全局机制使用不当导致的致命后果:
http://bbs.ichunqiu.com/thread-11390-1-1.html?from=oschina

代码审计之绕过addslashes总结:
http://bbs.ichunqiu.com/thread-10899-1-1.html?from=oschina

mel 和 bees系列都是指定了对某个实际软件项目的审计,初学者可以跟随作者的脚步进行挖掘,联系,其他的类型则是一些杂乱的文章。

Melcms分析集合
代码审计就该这么来 Mlecms Getshell:
http://bbs.ichunqiu.com/thread-13703-1-1.html?from=oschina

代码审计就该这么来2 Mlecms 注入:
http://bbs.ichunqiu.com/thread-13714-1-1.html?from=oschina

{代码审计思路} (通读+审计) Mlecms(中危漏洞/不简单):
http://bbs.ichunqiu.com/thread-11510-1-1.html?from=oschina

beescms分析集合
【代码审计初探】beescms v4.0_R SQL:
http://bbs.ichunqiu.com/thread-12635-1-1.html?from=oschina

对Beescms SQL注入漏洞的进一步思考:
http://bbs.ichunqiu.com/thread-13606-1-1.html?from=oschina

代码审计就该这么来3 beescms getshell:
http://bbs.ichunqiu.com/thread-13977-1-1.html?from=oschina

Beecms任意文件删除:
http://bbs.ichunqiu.com/thread-14540-1-1.html?from=oschina

其他
PHP代码审计:Null 字符问题:
http://bbs.ichunqiu.com/thread-4349-1-1.html?from=oschina

一个CMS案例实战讲解PHP代码审计入门:
http://bbs.ichunqiu.com/thread-16775-1-1.html?from=oschina

PHP代码审计储存XSS形成防御加利用篇:
http://bbs.ichunqiu.com/thread-10532-1-1.html?from=oschina

ZZCMS的代码审计:
http://bbs.ichunqiu.com/thread-14684-1-1.html?from=oschina

另外要提的一点是,不同语言编写的web应用其实都有相似性,当你熟练了解一门语言的代码审计过程后其实便可以进一步扩展到别的语言。你会发现基本原理是相似的,当然不同还是存在的,比如其中的addslashes和null的文章便是如此,它是php这门语言独有的问题,其他还有的一些差异在这里不细说明。

五、i春秋课程推荐

PHP代码审计实战:
http://www.ichunqiu.com/course/54473?from=oschina

六、代码审计工具推荐

RIPS
它能检查出XSS ,sql注入,敏感信息泄漏,文件包含等常见漏洞;能够采用正则方式扫描代码发现漏洞;也可以采用自定义的语法扫描代码发现问题。
下载链接:http://rips-scanner.sourceforge.net/
参考文章
工具推荐:三款自动化代码审计工具:http://bbs.ichunqiu.com/thread-16776-1-1.html?from=oschina

七、关联阅读

Mybatis框架下SQL注入漏洞面面观:
http://bbs.ichunqiu.com/thread-12574-1-1.html?from=oschina

如何用grep对PHP进行代码审计:
http://bbs.ichunqiu.com/thread-16779-1-1.html?from=oschina

python 安全编码&代码审计:
http://bbs.ichunqiu.com/thread-16770-1-1.html?from=oschina

结语

本帖旨在帮助大家更好更系统的学习代码审计,大家有任何建议望不吝赐教,

下期技术专题调研:

我们将在这两天确定下周的技术专题,大家有想学习的指定的技术可以留言申请,我们会根据需求来调整策划专题,感谢大家支持啦!

PHP代码审计中你不知道的牛叉技术点相关推荐

  1. 分别列举人工智能4个主要领域中最牛叉的10位专家

    人工智能,各个子领域的最牛叉的10位专家除了吴恩达,你还能说出几个?李飞飞在计算机视觉中能排进前10吗? 在平时文献搜索,专题学习中,他们的课程和资料无疑是非常好的参考资料,我搜索了2018年初Min ...

  2. 超牛叉技术支撑的成人网站

    声明:本文从技术角度讨论成人网站,内容完全健康,其中所涉及的网站名称.网址均作了替换. 原文标题"在整个互联网中,成人网站有多大?" 上网之人,多少都会接触过成人网站.这是一个举世 ...

  3. 推荐几个牛叉技术大神的高质量免费技术专栏,码洞垫底

    今天推荐一些行业内优质技术号,这些号的主人在技术圈深耕多年,关注这些技术号可以让我们第一时间了解行业前沿技术,深度学习他们分享的实战经验,让我们的技术提升事半功倍 芋 道 源 码 ▲长按图片识别二维码 ...

  4. Redis PK Memcached,哪个更牛叉

    转载自 Redis PK Memcached,哪个更牛叉 说到 redis 就会联想到 memcached,反之亦然.了解过两者的同学有那么个大致的印象: redis 与 memcached 相比,不 ...

  5. 在A*寻路中使用二叉堆

    在A*寻路中使用二叉堆 作者:Patrick Lester(2003年4月11日更新) 译者:Panic 2005年3月28日 译者序:     这一篇文章,是"A* Pathfinding ...

  6. 游戏中应用强化学习技术,目的就是要打败人类玩家?

    来源:AI前线 作者:凌敏 采访嘉宾:黄鸿波 2016 年,DeepMind 公司开发的 AlphaGo 4:1 大胜韩国著名棋手李世石,成为第一个战胜围棋世界冠军的人工智能机器人,一时风头无两.Al ...

  7. python自动化框架2019_《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!...

    1. 简介 本文开始介绍如何通过unittest来管理和执行测试用例,这一篇主要是介绍unittest下addTest()方法来加载测试用例到测试套件中去.用addTest()方法来加载我们测试用例到 ...

  8. mysql 主从 通俗易懂_MySQL 主从同步架构中你不知道的“坑”(完结篇)

    MySQL 主从同步架构中你不知道的"坑"(完结篇) 收录于话题 #MySQL从入门到放弃 26个 点击上方蓝字,关注我们哟! 前言导读 之前写出一篇文章也是关于这个主从同步架构的 ...

  9. 大学自学html有前途吗,大学中最“牛逼”,最有前途的3个专业,考上就是金饭碗...

    人们都说一考定终身,高考过后,选择一所好的大学很重要,选择一门好的专业同样也是极其重要的,选对一门好的专业,未来可以改变自己的人生,等于拥有了金饭碗,选错大学专业,也就意味着自己丢了饭碗. 下面这个3 ...

最新文章

  1. oracle忘记密码
  2. MySQL处理中文乱码问题
  3. 【机器学习基础】数学推导+纯Python实现机器学习算法12:贝叶斯网络
  4. 提高Java架构师和程序员效率的10个工具
  5. python地图 两点距离_没学过还真不会!怎样才能画出准确的地图?
  6. Android下 布局加边框 指定背景色 半透明
  7. 什么样的程序员会让人讨厌?大家注意,千万不要成为这种程序员!
  8. SQL Server2008 用编写脚本自动生成的Sql语言出现 “列名显示无效 ”错误
  9. SQL Server Integration Services(SSIS)中的脚本任务调试
  10. jquery $.ajax
  11. python编辑数学公式_最好用的文字与公式编辑器,这套数学笔记神器送给你
  12. Java冻结Excel行或列
  13. macbook 查看本机ip地址
  14. 许奔创新社-第29问:什么是创新者的王者匠心?
  15. c语言标准差函数std,std函数
  16. Go设计模式学习准备——下载bilibili合集视频
  17. STM32F103C8T6 点亮LED灯
  18. 前后端分离,使用AppNode管理前端部署-安装
  19. python爬wos数据库,用Python爬行WoS
  20. 《程序员延寿指南》火爆 GitHub,日涨 1500+ 星,优秀 !

热门文章

  1. Linux CENTOS6.5 图形命令互转
  2. 程序员必收藏的五个网站
  3. React + TypeScript 默认 Props 的处理
  4. CSS基础学习-6.CSS属性_列表、表格
  5. Cloudera Manager安装之Cloudera Manager安装前准备(Ubuntu14.04)(一)
  6. CFI Flash, SPI Flash, Nand Flash,Nor Flash的区别和联系
  7. pytest入门学习(2)
  8. 服务器读取本地文件,java远程服务器访问本地文件
  9. Linux服务器上线时间,查看linux服务器时间
  10. mysql insert执行过程_MySQL · 源码分析 · 一条insert语句的执行过程