大家有什么代码南京审计大学代码工具推荐

代码审计入门总结
我的图书馆
代码审计入门总结
from:http://drops.wooyun.org/tips/127510x01 整体学习代码审计的目标是能够独立完成对一个CMS的代码安全监测。其通用的思路有:通读全文代码,从功能函数代码开始阅读,例如include文件夹下的common_fun.php,或者有类似关键字的文件。看配置文件,带有config关键字的文件,找到mysql.class.php文件的connect()函数,查看在数据库连接时是否出现漏洞。继续跟读首页文件,index.php,了解程序运作时调用了哪些函数和文件 以index.php文件作为标线,一层一层去扩展阅读所包含的文件,了解其功能,之后进入其功能文件夹的首页文件,进行扩展阅读。0x02 各种洞洞a.文件操作漏洞能不用文件名参数就不用 尽量不要让用户可控平行用户的权限 管理员的权限 操作权限禁止传入参数类似于这种 .. ,/,\ 检查传入的参数,做出限制,停止程序往下执行1.文件包含漏洞:(1) 本地文件包含:一般存在于模块加载,模板加载,cache调用包括函数:include()/include_once(),require()/require_once()寻找可控变量(2) 远程文件包含:前提条件:allow_url_include = on出现频率不如本地包含(3) 文件包含截断:%00截断(php版本小于5.3)问号截断(问号后面相当于请求的参数,伪截断)英文(.) 反斜杠(/) 截断2.文件读取(下载)漏洞:搜索关键函数:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等3.文件上传漏洞:搜索关键函数:move_uploaded_file() 接着看调用这个函数的代码是否存在为限制上传格式或者可以绕过。(1) 未过滤或本地过滤:服务器端未过滤,直接上传PHP格式的文件即可利用。(2) 黑名单扩展名过滤:限制不够全面:IIS默认支持解析.asp,.cdx, .asa,.cer等。扩展名可绕过:不被允许的文件格式.php,但是我们可以上传文件名为1.php(注意后面有一个空格)(3) 文件头 content-type验证绕过:getimagesize()函数:验证文件头只要为GIF89a,就会返回真。限制$_FILES['file']['type']的值 就是人为限制content-type为可控变量。(4) 防范:使用in_array()或 利用三等于===对比扩展名。保存上传文件是重命名,规则采用时间戳拼接随机数:md5(time() + rand(1,1000))。4.文件删除漏洞:搜索关键函数:unlink()利用回溯变量的方式老版本下的session_destroy(),可以删除文件,现已基本被修复。Metinfo的任意文件删除漏洞:$action = delete即可删除.sql的文件,如果文件不是sql直接删除提交的文件名target.com/recovery.php?&action=delete&filename=../../index.phpb.代码执行漏洞1.代码执行函数:搜索关键函数:eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(), array_map()(1) preg_replace()函数:mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )当$pattern处存在e修饰符时,$replacement 会被当做php代码执行。(2)mixed call_user_func( callable $callbank [ , mixed $parameter [ , mixed $…):第一个参数为回调函数,第二个参数是回调函数的参数(3)eval()和assert():当assert()的参数为字符串时 可执行PHP代码【区分】:eval(' phpinfo(); ');【√】 eval(' phpinfo() ');【X】assert(' phpinfo(); ');【√】 assert(' phpinfo() ');【√】2.动态函数执行:动态函数后门:123$_GET['a']($_GET['b']);>3.命令执行函数:搜索关键函数:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()(1) popen和proc_open():123popen( 'whoami >> /Users/bingdaojueai/Desktop/1.txt', 'r' ); >所在路径就会出现一个1.txt 里面的内容为命令执行后的结果(2) 反引号命令执行:echo whoami; 直接就可以执行命令双引号和单引号的区别:123$a = 1echo ' $a '&&& output:1echo ' $a '&&& output:$a双引号时,可以直接解析变量,造成代码执行漏洞,过狗绕过。c.变量覆盖漏洞1.函数使用不当:int extract( array &$var_array , int $extract_type = EXTR_OVERWRITE , string $prefix = null )void parse_str( string $str , array &$arr )bool import_request_variables( string $type , string $prefix )2.$$变量覆盖:d.逻辑漏洞需要思考的问题:程序是否可以重复安装修改密码是否存在越权修改其他用户密码找回密码验证码是否可以暴力破解cookie是否可以预测 验证存在绕过1.等于与存在判断绕过:(1) in_array(): 比较之前会自动转换类型(2)is_numeric():当传入参数为hex时 直接通过并返回true 并且MYSQL可以直接使用hex编码代替字符串明文 可以二次注入 并且可能造成XSS漏洞(3)双等于==和三等于===:双等于会在变量比较时,进行类转换,与in_array()是一样的问题。三等于是type和value的双重比较,相比之下更加安全。2.账户体系中的越权问题:水平越权:A用户能够以B用户的身份,进行B用户的全部权限操作。前提A用户和B用户拥有相同的权限。垂直越权:A用户能够以C用户的身份,进行C用户的全部权限操作,前提C用户比A用户拥有更高的权限。(1) 未exit/return/die:1234567if(file_exists('install.lock)){&&&&header('Location:xxx.com');&&&&//exit();}echo 'test';>test 依旧会被输出,替换成安装流程,PHP依旧会进行。(2) 支付漏洞:客户端修改单价客户端修改总价和购买数量服务端未校验严格重复发包利用时间差:1234567if (check_money($price)){&&//Do something&&//花费几秒&&$money = $money - $price;}>可能导致漏洞函数: str_replace()1234567$a = addslashes($_GET['a']);$b = addslashes($_GET['b']);echo '$a$b';$c = str_replace($a,'',$b);echo trim($c);>e.会话认证漏洞COOKIE验证:没有使用SESSION验证,将信息直接保存在COOKIE中找到传入sql语句的参数的传递过程 回溯变量到最原始的函数 看它保存在cookie的算法 是否可逆和MD5比起 sha1更安全 解密sha1的网站更少限制一个用户只能同时在一个IP上登录审计代码时,查看登录处代码f.二次漏洞1.类型:不是逻辑问题,是可信问题。业务逻辑复杂度,与二次漏洞触发率 成正比。购物车 / 订单 / 引用数据 / 文章编辑 / 草稿 ==> SQL注入 / XSS2.技巧:(1) 钻GPC等转义的空子:不受GPC保护的$_SERVER变量:PHP5以后,$_SERVER取到的header不再受GPC影响,就算开启特殊字符也不会被转义,存在注入编码问题转换:GBK的宽字节注入:%df ' 单引号自动被转义成(%5c),同时%df与%5c连在一起组合成運字单引号依然在,成功闭合。【php与mysql交互过程中发生的编码转换问题】mb_convert_encoding():12345'Content-Type' content='text/charset=utf-8'/> $sql = 'WHERE id=''.urldecode('-1%df%5c' == ').'''; print_r(mb_convert_encoding($sql,'UTF-8','GBK'));>(2)字符串问题:利用报错,找到敏感信息字符串截断:%00空字符截断:【PHP版本小于5.3】12345include($_GET['file'].'.php');&&&&& //1.php?file=2.txt%00//2.txt里面是 >iconv函数字符编码转换截断:【对PHP版本有要求】123456chr(128)—chr(255)可以截断字符$a = '1'.chr(130).'2’; echo $a.'';&&&&&&&&&&&&&&&&&& //1?2echo iconv('UTF-8', 'GBK', $a);&& //1>php:// 输入输出流:1234&&&&include($_GET[‘file']);>1.php?file=php://filter/convert.base64-encode(内容被base64编码)/resource=example.txt(远程文件)php代码解析标签::php3.0.4版本后可用:asp标签,需要asp_tags=on,默认是off正则表达式:没有使用^ 和 $ 限定匹配开始位置:特殊字符未转义:报错注入:windows findfirstfile 利用:若要搜索12345.txt文件,可使用1来代替或者12,不可以单独使用一个'或'>',因为单独一个只是代表了一个字符,两个代表多个字符。
喜欢该文的人也喜欢代码安全审计的四大误区_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
代码安全审计的四大误区
&&代码安全审计,一个简单又高效的软件安全保障手段,如果能够有效地在企业中展开,它会让您的软件安全建设工作事半功倍。
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩2页未读,
定制HR最喜欢的简历
你可能喜欢工具推荐:三款自动化代码审计工具
共926193人围观 ,发现 16 个不明物体0×01
简介工欲善其事,必先利其器。在源代码的静态安全审计中,使用自动化工具代替人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。在学习PHP源代码审计的过程中,本人搜集使用了多款自动化工具。本文将简要介绍其中三款比较实用的工具:RIPS、VCG、Fortify SCA。RIPS是一款开源的,具有较强漏洞挖掘能力的自动化代码审计工具。它使用PHP语言编写的,用于静态审计PHP代码的安全性。VCG(VisualCodeGrepper),是一款支持C/C++、C#、VB、PHP、Java和PL/SQL的免费代码安全审计工具。它是一款基于字典的检测工具,功能简洁,易于使用。Fortify SCA(Static Code Analyzer)是由Fortify软件公司(已被惠普收购)开发的一款商业版源代码审计工具。它使用独特的数据流分析技术,跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。本文结合一个应用实例的分析,介绍三款工具的使用方法以及特性。0×02
RIPSRIPS的主要功能特点如下:1)
能够检测XSS、SQL注入、文件泄露、本地/远程文件包含、远程命令执行以及更多种类型的漏洞。2)
有5种级别选项用于显示以及辅助调试扫描结果。3)
标记存在漏洞的代码行。4)
对变量高亮显示。5)
在用户定义函数上悬停光标可以显示函数调用。6)
在函数定义和调用之间灵活跳转。7)
详细列出所有用户定义函数(包括定义和调用)、所有程序入口点(用户输入)和所有扫描过文件(包括include的文件)。8)
以可视化的图表展示源代码文件、包含文件、函数及其调用。9)
仅用几个鼠标点击就可以使用CURL创建针对检测到漏洞的EXP实例。10)
详细列出每个漏洞的描述、举例、PoC、补丁和安全函数。11)
7种不同的语法高亮显示模式。12)
使用自顶向下或者自底向上的方式追溯显示扫描结果。13)
一个支持PHP的本地服务器和浏览器即可满足使用需求。14)
正则搜索功能。最新版本的RIPS是0.55,下载链接如下:解压下载的zip文件到Web服务器网站目录下即可。在浏览器中输入Web服务器地址和对应目录,RIPS工具的用户使用界面如下:最上方是所有功能按钮菜单。扫描任务结束后,菜单中会出现4个新的按钮,分别用来显示/隐藏4个扫描结果窗口:被扫描文件、用户输入点、扫描状态信息和被扫描函数。现在以一个简单的实例来说明RIPS的使用方法,下载链接如下:该PHP应用程序用来统计某网站的用户访问情况,登录到程序后台可以查看详细访问信息。将下载后的程序解压,在RIPS的“path/file”选项中填入程序解压目录,其它选项保持默认,点击“scan”按钮开始扫描任务。扫描结束后,点击window菜单的4个按钮可以显示任务的详细情况。正文部分显示扫描出漏洞的详细情况,点击“hide all”按钮可以查看/隐藏每个文件的详细漏洞结果列表。让我们来看其中某一个漏洞详情,init.php源代码中存在SQL注入漏洞。未过滤的$procookie参数直接被cheakcookie()函数调用。将光标悬停在cheakcookie()函数上方,即可显示cheakcookie()函数是如何定义的。cheakcookie()函数在main.php文件中被定义,可以看出未被过滤的参数直接带入SQL语句被执行。在漏洞的详细情况中显示$procookie参数由$_COOKIE[count_admin]传递,从init.php源代码的上下文可知,该参数是为了后台登录的cookie值校验。当count_admin值无法匹配数据库中的数据时,校验失败。将POST包中Cookie中的count_admin改为“’ or 1=1 #”,即可绕过cookie校验,直接进入后台。 0×03
VCGVCG是一个基于字典的自动化源代码扫描工具,可以由用户自定义需要扫描的数据。它可以对源代码中所有可能存在风险的函数和文本做一个快速的定位。VCG的下载链接如下:双击下载的msi文件进行安装即可。在Settings-&Options-&ConfigFiles选项中可以对每种语言的扫描配置文件进行编辑。点击Settings选项,选择扫描的目标语言类型。点击File-&New Target Directory选项,选择需要扫描的源代码文件存放目录,我们选择上文提到的应用实例存放目录。点击Scan-&Full Scan选项,扫描开始。扫描结果以图标的形式对被扫描文件的数据做一个统计,这个功能有点鸡肋。我们重点关注Results和Summary Table两个面板显示的内容。Results面板显示所有存在安全风险的源码,右键点击可以对结果进行排序过滤。Summary Table面板是对Results面板内容的总结展示。VCG是通过匹配字典的方式查找可能存在风险的源代码片段。它的扫描原理较为简单,跟RIPS侧重点不同,并不深度发掘应用漏洞。VCG可以作为一个快速定位源代码风险函数的辅助工具使用。0×04
Fortify SCAFortify SCA是一款商业软件,价格较为昂贵,因此我只找到了一个早期的版本进行试用。因为是商业软件,它有详细的使用文档,查阅非常方便。它支持一些IDE的插件功能,在安装的时候会有选项。Fortify SCA的代码审计功能依赖于它的规则库文件,我们可以下载更新的规则库,然后放置在安装目录下相应的位置。bin文件放置在安装目录下Core\config\rules文件夹,xml文件放置在Core\config\ExternalMetadata文件夹(如果该文件夹没有则新建一个)。打开AuditWorkbench,点击Start New Project-&Advanced Scan选项就可以快速开始一个审计任务。选择需要审计的应用程序根目录,在Additional Options选项中选择使用的规则库,在Audit Guide提出的四个问题中选择对应的选项,点击Run Scan即可。审计的结果由5个面板来呈现。我们来看跟RIPS审计结果同样的SQL注入问题。点击左侧问题,源代码面板自动定位到出现问题的源代码行。分析跟踪面板显示了详细的数据走向。从COOKIE读入-&赋值给变量$procookie-&带入cheakCookie()函数-&赋值给变量$sql-&带入mysqli_query()函数执行。左侧每一个图标的含义在使用手册上可以查到。点击其中每一行,自动定位到对应的源代码行。同时在问题审计面板的Diagram中,有更为形象的数据流向图,直观展示了漏洞产生的原因。审计面板的其他标签详细说明了漏洞信息,相对于RIPS这种开源软件,Fortify SCA审计结果展示更为详细。Tools-&Generate Report功能还可以根据用户的需求生成审计结果的报告。0×05
总结VCG与其他两款工具不同,它是一个简洁的风险函数扫描定位工具,基于字典实现扫描功能。而RIPS和Fortify SCA则是静态深度分析源代码漏洞的利器,它们使用各自的技术对应用程序执行过程进行了追踪分析,做了深层次的漏洞挖掘工作。RIPS易于部署和使用,可以作为简单应用功能的自动化审计分析工具。而Fortify SCA功能更为强大,可以胜任较为复杂的应用自动化分析。在实际审计工作中可以结合使用两种工具,取长补短。自动化的静态代码审计工具可以节省代码审计的人力成本,是提高代码审计效率的重要手段。然而需要注意的是,自动化工具并非是完全智能的,跟所有的漏洞扫描工具一样,误报率的存在仍然是一个现实的问题。因此,报表中显示的漏洞需要审计人员进一步确认是否真的存在。此外,自动化工具还有一个很大的局限性:它仅能够对常见的Web应用漏洞类型进行挖掘,对于Web 2.0时代兴起的业务逻辑漏洞挖掘可以说是束手无力。所以,对于有经验的代码审计人员来说,审计工具起到的仅仅是辅助作用,他们会在利用工具的基础上结合自己经验挖掘出更深层次的漏洞。* 文章由istr33投递,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)
代码审计:审计思路之实例解说全文通读
程序猿必备的17款最佳的代码审查工具
XDT——基于Python的XSS自动化检测工具
Github安全开源工具集合
PH代码审计常用工具
代码审计工具简单汇总
没有更多推荐了,源代码安全审计工具(striptls)1.0 免费开源版-东坡下载
东坡下载:内容最丰富最安全的下载站!
→ 源代码安全审计工具(striptls) 1.0 免费开源版
striptls是一款python平台下的源代码安全审计工具。该工具提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。它能通过SMTP、POP3、IMAP、FTP、NNTP、XMPP、IRC等多种通信协议实现审计功能,欢迎下载!源代码安全审计工具怎么用striptls安装使用方法1.从pip安装#& pip install striptls2.从源安装#& setup.py install示例:& & & & & & & & & inbound & & & & & & & & & &outbound[inbound_peer]&-------------&[listen:proxy]&-------------&[outbound_peer/target]& smtp-client & & & & & & & & & striptls & & & & & & & & & &remote/target本地 smtp-client -& localhost:8825 (代理) -& mail.gmx.net:25提示:本工具是对纯文本通信协议的扩展,并没有可视化窗口。源代码安全审计工具通信方式SMTPSMTP.StripFromCapabilities - server response capability patchSMTP.StripWithInvalidResponseCode - client STARTTLS stripping, invalid response codeSMTP.UntrustedIntercept - STARTTLS interception (client and server talking ssl) (requires server.pem in pwd)SMTP.StripWithTemporaryErrorSMTP.StripWithErrorSMTP.ProtocolDowngradeStripExtendedModeSMTP.InjectCommandPOP3POP3.StripFromCapabilitiesPOP3.StripWithErrorPOP3.UntrustedInterceptIMAPIMAP.StripFromCapabilitiesIMAP.StripWithErrorIMAP.UntrustedInterceptIMAP.ProtocolDowngradeToV2FTPFTP.StripFromCapabilitiesFTP.StripWithErrorFTP.UntrustedInterceptNNTPNNTP.StripFromCapabilitiesNNTP.StripWithErrorNNTP.UntrustedInterceptXMPPXMPP.StripFromCapabilitiesXMPP.StripInboundTLSXMPP.UntrustedInterceptACAP (untested)ACAP.StripFromCapabilitiesACAP.StripWithErrorACAP.UntrustedInterceptIRCIRC.StripFromCapabilitiesIRC.StripWithErrorIRC.UntrustedInterceptIRC.StripWithNotRegisteredIRC.StripCAPWithNotregisteredIRC.StripWithSilentDrop结果:- [*] client: 127.0.0.1- & & [Vulnerable!] &class striptls.StripWithInvalidResponseCode at 0xffd3138c&- & & [Vulnerable!] &class striptls.StripWithTemporaryError at 0xffd4611c&- & & [ & & & & & ] &class striptls.StripFromCapabilities at 0xffd316bc&- & & [Vulnerable!] &class striptls.StripWithError at 0xffd4614c&- [*] client: 192.168.139.1- & & [Vulnerable!] &class striptls.StripInboundTLS at 0x7f&- & & [Vulnerable!] &class striptls.StripFromCapabilities at 0x7f&- & & [Vulnerable!] &class striptls.UntrustedIntercept at 0x7f&
安卓官方手机版
IOS官方手机版
源代码安全审计工具(striptls)截图
源代码安全审计工具(striptls) 1.0 免费开源版
本类最新软件
本类软件推荐
35.0M / 05-05 / 5.0.0.8120标准安装包
1.3M / 04-01 / 12.13 最新正式版
128.9M / 03-21 / 9.61.306.1410 万能网卡版
72.8M / 03-11 / 11.6.0.1064正式版【离线包】
72.8M / 03-09 / 11.4 离线安装免费领航版
本类软件排行
本类软件必备
杀毒密码防火墙安全
请简要描述您遇到的错误,我们将尽快予以修正。
轮坛转帖HTML方式
轮坛转帖UBB方式}

我要回帖

更多关于 源代码审计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信