自动化审计

尹毅大牛发了个审计系统,但是毕竟源码不公开,我也没有办法修改代码来实现自己想要实现的功能。

既然想搞审计,写个脚本框架吧。

目前的想法:

1.如何用python扫描一个目录下的所有文件,并逐个检查文件内容?

果然,如果没有决定要学习,事情不会进展下去:

两段脚本:

打印出一个文件夹下所有的php文件,包括子文件夹都列举出来:

import os
def main(name,*types):
    for root,dirs,files in os.walk(name):
        for f in files:
            if os.path.isfile(os.path.join(root,f)) and os.path.splitext(f)[1][1:] in types:
                print os.path.join(root,f)

if __name__ == ‘__main__‘:
    main(r"D:\phpStudy\WWW\ZVuln","php")

允许输入关键字和一个文件目录,然后从文件目录下的所有文件搜索关键字,如果搜索到,则返回文件目录:

#-*-coding:utf-8-*-
import os

# 判断文件中是否包含关键字,是则将文件路径打印出来
def is_file_contain_word(file_list, query_word):
    for _file in file_list:
        if query_word in open(_file).read():
            print _file
    print("Finish searching.")

# 返回指定目录的所有文件(包含子目录的文件)
def get_all_file(floder_path):
    file_list = []
    if floder_path is None:
        raise Exception("floder_path is None")
    for dirpath, dirnames, filenames in os.walk(floder_path):
        for name in filenames:
            file_list.append(dirpath + ‘\\‘ + name)
    return file_list

query_word = raw_input("Please input the key word that you want to search:")
basedir = raw_input("Please input the directory:")

is_file_contain_word(get_all_file(basedir), query_word)
raw_input("Press Enter to quit.")

2.如何匹配到危险函数?

其实做到上一步,我的问题就是有哪些危险函数,然后哪些危险函数会造成哪些漏洞?

搜索到别人的文章,用python搭建自动化代码审计的想法似乎进行不下去了。。。。

要根据别人的思路,我们在别人的基础上做二次开发吗?

简易的自动化代码审计平台的搭建  http://www.maxwithcoco.com/notes/building-auto-webauditor-platform

学习进行不下去了,回到最初的目的,我们是想进行代码审计,而且是希望审计很多CMS,得出很多有漏洞的CMS。

思路其实有两种,一种是一个个审,另一种是批量化。

学习准备:

在小米圈收到大佬的php的笔记,上中下。

时间: 2024-10-21 10:12:11

自动化审计的相关文章

python 自动化审计

基于python的自动化代码审计 代码审计 逢魔安全实验室  2018-02-11  10,539 本文通过介绍在python开发中经常出现的常规web漏洞,然后通过静态和动态两种方式对python代码进行自动化审计挖掘漏洞,并且展示自动化系统在自动化审计python应用代码的成果,本文比较长,请耐心阅读,惊喜在后面. 从python常规漏洞来看都有一个共同点,那就是危险函数中使用了可控参数, 如system函数中使用到的(‘mv %s’% filename), 如execute函数中使用到的u

Python自动化审计及实现

Python语言由于其简单,快速,库丰富的特点在国内使用的越来越广泛,但是一些不好的用法却带来了严重的安全问题,本文从Python源码入手,分析其语法树,跟踪数据流来判断是否存在注入点. 0x01 引言 Python注入问题是说用户可以控制输入,导致系统执行一些危险的操作.它是Python中比较常见的安全问题,特别是把python作为web应用层的时候这个问题就更加突出,它包括代码注入,OS命令注入,sql注入,任意文件下载等. 0x02 注入的场景 主要是在web应用场景中,用户可直接控制输入

PHP自动化白盒审计技术与实现

0x00前言 国内公开的PHP自动化审计技术资料较少,相比之下,国外已经出现了比较优秀的自动化审计实现,比如RIPS是基于token流为基础进行一系列的代码分析.传统静态分析技术如数据流分析.污染传播分析应用于PHP这种动态脚本语言分析相对较少,但是却是实现白盒自动化技术中比较关键的技术点.今天笔者主要介绍一下最近的研究与实现成果,在此抛砖引玉,希望国内更多的安全研究人员将精力投入至PHP自动化审计技术这一有意义的领域中. 0x01 基础知识 自动化审计的实现方式有多种,比如直接使用正则表达式规

浅谈PHP自动化代码审计技术

原文出处: exploit   欢迎分享原创到伯乐头条 0×00 由于博客实在没什么可以更新的了,我就把目前做的事情总结一下,当做一篇博客,主要是谈一谈项目中所运用的一些技术.目前市面上有不少PHP的自动化审计工具,开源的有RIPS.Pixy,商业版本的有Fortify.RIPS现在只有第一版,由于不支持PHP面向对象分析,所以现在来看效果不是太理想.Pixy是基于数据流分析的工具,但是只支持PHP4.而Fortify是商业版本,由于这个限制,对它的研究也就无从谈起.国内对于PHP自动审计的研究

Seay源代码审计系统2.0及源码开放 人人都是代码审计师

历史版本: 2013年7月15日 Seay源代码审计系统2.0 1.增加mysql执行监控,可以监控自定义断点后执行的所有SQL语句,方便调试SQL注入2.更换在线升级,安装好之后下次更新可以直接在线升级,无需重新安装3.更换皮肤,去除图片优化程序速度4.更换mysql管理系统为HeidiSql 2013年6月18日  Seay源代码审计系统1.1 1.审计规则禁用2.审计进度显示3.优化正则调试.编码转换输入框4.优化信息泄露插件扫描模式5.修复代码查看处的一个bug 2013年6月8日 Se

使用PHP-Parser生成AST抽象语法树

0.前言 最近项目的流程逐渐清晰,但是很多关键性的技术没有掌握,也只能一步一步摸索. 由于要做基于数据流分析的静态代码分析,所以前端的工作如:词法分析.语法分析必不可少.Yacc和Lex什么的就不再考虑了,查了一天的资料,发现两款比较适合,一款是Java下的ANTLR,另一款是专门做PHP AST生成的PHP-Parser. ANTLR是编译原理领域比较著名的工具了,相对于Yacc和Lex,更加实用.但是对PHP的语法文件只有一个,折腾了半天才生成调通,发现不太适合,对于"$a=1"生

PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的

PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报  分类: MYSQL数据库(5)  PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),功能很强大.包括了可以说是目前世界上最丰富的数据类型的支持,比如 IP 类型和几何类型等等. 发现很多读者都问过这样一个问题:如果打算为项目选择一款免费.开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定.针对这个问题,我们采访到了即将在Postgres中国用户20

实现高性能备份灾备的最佳实践

最近一项针对英国.美国.德国和法国企业的调查研究发现,85%的中小型企业(SMB)都面临成本的障碍,83%的SMB关注数据保护能力,80%的SMB则关心IT系统的复杂性问题.这些挑战基于一定程度上继续尝试使用传统的物理环境的思想,来实现在虚拟环境中的数据保护,而不是采用一种新的方法来实现.然而企业采取新的方法来执行数据保护也会面临不少挑战.例如,55%的中小企业表示,他们打算改变他们的工具来备份虚拟环境,在未来两年. 下面,我们将为大家介绍实现高性能备份的十大最佳实践: 一.关注性能 随着各类数

深入探究宽字节注入漏洞与修补原理

 0.前言 最近要为了自动化审计搜集所有PHP漏洞,在整理注入的时候,发现宽字节注入中使用iconv造成的漏洞原理没有真正搞懂,网上的文章也说得不是很清楚,于是看了荣哥(lxsec)以前发的一篇http://www.91ri.org/8611.html,加上我们两个人的讨论,最终有了这一篇深入的研究成果. 1.概述 主要是由于使用了宽字节编码造成的. 什么是字符集? 计算机显示的字符图形与保存该字符时的二进制编码的映射关系. 如ASCII中,A(图形)对应编码01000001(65). 对于