代码审计第五节

admin 2022年1月6日04:55:32评论94 views字数 3147阅读10分29秒阅读模式

代码审计第五讲主要介绍了一些实例挖掘漏洞,进而分析xss漏洞,在实际cms中的影响。本例先从dvwa实际例子开始分析,由于观看人数水平参差不急,所以从最基础开始讲起。让每一个看文章有所收获。

DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。

下载地址:http://www.dvwa.co.uk/。

如果大家有需要,可以自行下载,进行安装测试,安装比较简单,可以采用wamp进行安装,但是需要注意一点,需要修改数据库配置文件,才可以安装成功。

代码审计第五节

打开配置文件,里面数据库名字、账号、密码都要改成你自己配置的数据库账号密码,这样就可以安装成功。

代码审计第五节

这个里面是我本地的数据库账号和密码。

代码审计第五节

安装完大概登陆界面大概就是这样,这里username和password都是默认的,填写admin和password就可以进行登陆了。

代码审计第五节

这是登陆成功以后,后台管理页面。我们重点讲解xss代码。

代码审计第五节

在dvwa里面,有一个是vulnerabilities这么一个文件,点击文件夹,进入会看见上图红框标识的地方。

我们首先来进行分析第一个

代码审计第五节

选择第一个文件打开以后,会有一个low.php,我们打开文件,看到里面的代码熟悉么,比较简单,直接进行$_GET操作,导致出现跨站。

在看中级部分,我们看看它有没有什么变化,来进行防护,或者是代码在上一级别有什么改动。

代码审计第五节

我们发现一个函数,什么函数呢,是str_replace()这个函数,这个函数的大概意思就是,如果在$_GET接收值得过程中,如果出现<script>这个变量,那么则替换成空,那么我们想象有没有别的方式来进行突破了呢,当然是可以得呢,可以进行大小写变换绕过,或者是双写script等操作。

初级和中级看完以后,我们来看一下高级部分,查看高级部分比中级部分又多加了哪些内容呢。

代码审计第五节

高级部分用的不是str_replace函数,而是用了htmlspecialchars这个函数,这个可以对$_GET进行什么防护措施。这个函数可以把& (和号)、”(双引号)、’(单引号)、(大于)这些敏感符号都进行转义,所有的跨站语句中基本都离不开这些符号,因而只需要这一个函数就阻止了XSS漏洞,所以跨站漏洞的代码防御还是比较简单的。

如果你对这个函数还是不理解,下点击下面链接:http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp

代码审计第五节

这里有一个选择级别的地方,就是对应后台管理代码部分,有高中低三个级别,你可以进行自己水平进行三个级别的选择。

反射型xss分析完以后,我们可以进行分析储存型xss。

存储型xss的代码相对来说会比反射型代码多很多,因为存储型xss是和数据库进行交互的,会有一个入库操作。然而反射型不需要进行入库操作。

代码审计第五节

这个是存储型低级部分代码,是不是比反射型多了许多呢。如果你对stripslashes、 mysql_real_escape_string这两个函数有疑惑,或者是想了解一下,请单击一下链接。

http://www.w3school.com.cn/php/func_string_stripslashes.asp

http://www.jb51.net/article/46460.htm

http://www.w3school.com.cn/php/func_mysql_real_escape_string.asp

依然对文章中的变量没有进行任何防护,直接触发xss漏洞。那么我们在看一下中级部分,看看中级部分有什么变化呢,

代码审计第五节

中级部分虽然加了str_replace函数,但是任然可以绕过,就像反射型那样,利用大小写等方法进行绕过。

高级部分也是如此,增加了htmlspecialchars函数。

代码审计第五节

这是的dvwa的基本代码讲说。另外一个是bwapp常见的反射和存储型漏洞,代码进行分析。

代码审计第五节

这个是bwapp源码。如果有需要可以点击一下链接进行下载

https://sourceforge.net/projects/bwapp/

和dvwa安装一样,首先要建立数据库,修改配置文件,就可以进行安装了。安装成功以后,界面如下。

代码审计第五节

正常登陆就可以。

代码审计第五节

如果你看过前面dvwa代码分析,那么对于bwapp这个反射型就不会模糊了,其实都是换汤不换药的做法。

这个我们就演示一下,让大家理解一下别的做法,一下用到工具为:

火狐浏览器+temper data插件

首先从原题可以看出,主要是通过修改一些http来进行达到跨站的目的。首先打开这个界面

代码审计第五节

界面如上图。既然知道了是修改referer这个http头,那么我们进行抓包,具体temperdata这个插件,如果不会使用,可以点击一下链接进行学习。

http://my.oschina.net/laiwanshan/blog/90480

打开界面利用temper data进行抓包,相关数据如下图

代码审计第五节

http部分没有相关的referer。那么我们可以在这个工具里面进行添加头操作。

代码审计第五节

这是我们添加的内容,<script>alert(1)</script>加在了xss_referer.php的后面,我们进行提交,查看界面是否有变化。

代码审计第五节

提交完以后会出现相应的弹框操作,所谓触发xss漏洞。别的xss漏洞类似,只不过是加了相应的过滤函数,那么我们可以进行各种编码、大小写等奇葩方法进行绕过。

在看一下存储型漏洞。

代码审计第五节

其实和dvwa类型差不多,只是在数据库进行了添加操作。我们查看一下数据库看看是否有语句插入。

代码审计第五节

我们发现有数据插入,导致数据库里面产生了垃圾数据。

实例代码挖掘,本次挖掘对象damicms。

代码审计第五节

由于xss漏洞挖掘,类似于sql注入漏洞挖掘,也是进行变量查找。上节也给大家讲了,如何定位到关键文件夹,上一节也简单介绍了一下ThinkPHP这个框架。如果还有迷糊,请参考上一节内容。从bwapp这个环境中,我们可以看到,可以挖掘$_GET,$_POST,REDERER,USER_AGENT,X_FORWARD_FRO等这些危险函数头。在源代码中可以进行查找,然后进行分析,或者对整个源代码进行分析。

代码审计第五节

我们查找ip的时候,发现了很多关于get_client_ip这个函数,那么我们跟进这个函数,看看有没有相关的漏洞。

代码审计第五节

我们发现其它变量都有相关保护操作,而ip这个函数没有经过任何修饰,猜测会有漏洞产生。那么我们在看看其他的输入输出函数都是采用什么变量进行保护的。

代码审计第五节

发现调用了框架函数,那么xss本身拥有什么框架函数呢,我们查看一下common.php这个文件。

代码审计第五节

从这个文件里面,发现remove_xss这个函数,是用来进行保护一些变量。证明我们猜想正确,那么来进行验证一下。

本次试用工具:火狐浏览器+tamper data插件

首先我们发现这个guestbook是一个留言,那么我们需要找到这个留言栏,进行发布留言,

代码审计第五节

在进行发布的时候利用temper data进行抓包。

代码审计第五节

抓到的包如下,需要我们自行添加ip,一般常见修改或者是添加ip的头为x_forwared_for。那么我们在temper data中进行添加,直接右键就可以进行添加。

代码审计第五节

添加好内容如上图。

代码审计第五节

发布成功以后,为上图。那么我们可以进入后台管理进行审核,查看是否会触发该漏洞。

代码审计第五节

发现该漏洞触发,那么我们实际案列就介绍到这里。

接下俩内容会给大家介绍文件上传和下载以及命令执行等漏洞。


本文作者:whitecell-club.org  redBu11

文章欢迎转载,但请务必保留作者与出处!


代码审计第五节


本文始发于微信公众号(WhiteCellClub):代码审计第五节

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日04:55:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计第五节https://cn-sec.com/archives/489660.html

发表评论

匿名网友 填写信息