分类目录归档:网络转载

代码审计案例一枚-渗透某CMS官方演示站

 早前一个被我捂烂的漏洞,其实不是要捂的,当注入交到乌云,审核比较忙测试的时候没复现,就给打回来了。我一直想写个详细的再交,结果没时间就没写,这两天上去一看鸡毛都没了,全补完了,shell也掉光了,后台也进不去……

想想算了不挖了。还好我有记笔记的习惯,拿出来分享一下。

继续阅读

在你的网站上应用内容安全策略

 

        我总是告诉我的学生,如果他们将在那里做任何类型的Web应用程序渗透测试,他们应该要先考虑的是运行自己的网络服务器。为了能够运行,我疯狂地选择了WordPress。我之所以这样说,是因为我意识到,我冒着曝光的高风险运行着WordPress。我会写未来有关此方面的文章,主要是因为我仍然积极地进行着SANS642和SAN542的教学。

继续阅读

P2P飞鱼贷支付接口敏感信息泄漏可导致任意金额充值及解决方案

log文件:http://www.feiyudai.com/log.txt

  签名原串:app_request=3&busi_partner=101001&card_no=6222802872501014761&dt_order=20150130135405&info_order=WAP充值&money_order=100.00&name_goods=WAP充值&no_order=llpay201501301354058871¬ify_url=http://www.feiyudai.com/mob-pay-paynotice.shtml&oid_partner=201501291000196502&risk_item={"user_info_bind_phone":"","user_info_dt_register":"20150130135405","risk_state":"1","frms_ware_category":"1009"}&sign_type=MD5&url_return=http://www.feiyudai.com/mob-pay-payreturn.shtml&valid_order=30&key=dgerg44rehrthrth56786523  签名:3d70f7df04f213c7c4290ea0bdd4ec16  签名原串:app_request=3&busi_partner=101001&card_no=6222802872501014761&dt_order=20150130135410&info_order=WAP充值&money_order=100.00&name_goods=WAP充值&no_order=llpay201501301354103803¬ify_url=http://www.feiyudai.com/mob-pay-paynotice.shtml&oid_partner=201501291000196502&risk_item={"user_info_bind_phone":"","user_info_dt_register":"20150130135410","risk_state":"1","frms_ware_category":"1009"}&sign_type=MD5&url_return=http://www.feiyudai.com/mob-pay-payreturn.shtml&valid_order=30&key=dgerg44rehrthrth56786523  签名:1321b6b3c3d3baca35b0373d79f26323  签名原串:acct_name=田娟&app_request=3&busi_partner=101001&card_no=6222802872501014761&dt_order=20150130135422&id_no=42070419820712056X&info_order=WAP充值&money_order=100.00&name_goods=WAP充值&no_order=llpay201501301354226749¬ify_url=http://www.feiyudai.com/mob-pay-paynotice.shtml&oid_partner=201501291000196502&risk_item={"user_info_bind_phone":"13476089996","user_info_dt_register":"20141017104055","risk_state":"1","frms_ware_category":"1009"}&sign_type=MD5&url_return=http://www.feiyudai.com/mob-pay-payreturn.shtml&user_id=2511&valid_order=30&key=dgerg44rehrthrth56786523  签名:5b6fa14a1b1f5148b43a12db1d193be6  签名原串:app_request=3&busi_partner=101001&card_no=6222802872501014761&dt_order=20150130135423&info_order=WAP充值&money_order=100.00&name_goods=WAP充值&no_order=llpay201501301354233750¬ify_url=http://www.feiyudai.com/mob-pay-paynotice.shtml&oid_partner=201501291000196502&risk_item={"user_info_bind_phone":"","user_info_dt_register":"20150130135423","risk_state":"1","frms_ware_category":"1009"}&sign_type=MD5&url_return=http://www.feiyudai.com/mob-pay-payreturn.shtml&valid_order=30&key=dgerg44rehrthrth56786523  签名:b846d1061b2f754bd85a3fd6af2e2b97

商户KEY:dgerg44rehrthrth56786523测试订单号:webllpay201508080410044534支付提交抓包记录============================

继续阅读

php中防止SQL注入的方法

【一、在服务器端配置】

安全,PHP代码编写是一方面,PHP的配置更是非常关键。

我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全。整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨。我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件可能不在该目录。

继续阅读

PfSense XSS漏洞分析

PfSense是一款基于FreeBSD操作系统的开源网络防火墙软件,已经被世界各地的公司广泛用来保护其基础设施。
在去年的时候,我们在PfSense中发现了一些安全漏洞(红黑联盟曾报道过),并提交给了PfSense的安全团队,到目前为止,时间已经过去一年有余,这段时间足以让使用PfSense的公司和个人通过打补丁升级到了最新的版本。因此,我们打算将这些漏洞公之于众,以便于安全研究人员互通有无,共享信息。

在本文中,我们将向大家介绍在pfSense中发现的CVE-2014-4687漏洞,该漏洞只存在于2.1.3及以下的版本中,此后的版本已经修复了该漏洞。

0×01 Schedules接口中的存储型XSS

如果我们点击Schedules,就会看到如下所示的Web接口。

 
图1 Schedules页面

打开这个页面之后,我们就可以通过按+按钮来添加时间表了。在这个过程中,我们可以把starttime0这个POST参数的值改为0:00'>alert(1);

图2 发送给服务器的恶意JavaScript请求

之后,输入的这段JavaScript代码会被原封不动地写入到响应中,并且没有对特殊字符进行任何的封装处理。这个响应的内容如下图所示。

图3 响应中的恶意JavaScript代码

一旦这个请求被显示于一个Web浏览器中,那么它就会变成一个XSS漏洞,因为其中的JavaScript代码会被浏览器所执行,具体如下图所示。

图4 JavaScript代码被浏览器执行

由于这个漏洞可在用户的Web浏览器中执行任意的JavaScript代码,所以,它能够用来窃取用户的会话cookie。

0×02 Rss.widget.php文件中的存储型XSS漏洞

PHP脚本widgets/widgets/rss.widget.php中,有一个存储型XSS漏洞,更确切地说,这个漏洞位于名为rssfeed的POST参数中。与这个漏洞相关的代码如下所示,其中高亮显示的部分为漏洞所在的代码。

   php    if($POST[rssfeed]) {    $config[widgets][rssfeed] = str_replace(n, ,, $POST[rssfeed]);    $config[widgets][rssmaxitems] = str_replace(n, ,,  POST[rssmaxitems]);    $config[widgets][rsswidgetheight] = $POST[rsswidgetheight];    $config[widgets][rsswidgettextlength] = $POST[rsswidgettextlength];    writeconfig(Saved RSS Widget feed via Dashboard);    Header(Location: /);    }    if($config[widgets][rssfeed])    $textareatxt = strreplace(,, n, $config[widgets][rssfeed]);    else    $textareatxt = "";    ?>     name="rssfeed" class="formfld unknown" id="rssfeed"  ols="40" rows="3">    $textareatxt;?>

 
下面所示的这个请求,会被名为rssfeed的POST参数中的恶意JavaScript代码发送给对应的Web服务器。

图5 POST参数rssfeed中的恶意JavaScript代码

之后,返回的响应中,会包含如下所示的代码,并且其中的特殊字符没有经过适当的安全处理。

图6 之前发送的恶意JavaScript代码被直接放入返回的Web页面中

下面展示的POST参数中也存在安全漏洞,并且它们都是位于同一个脚本中:
-     rssmaxitems
-     rsswidgetheight
-     rsswidgettextlength
-     rsswidgettextlength

攻击者可以将恶意JavaScript代码发送给Web应用,并且该应用也会把这些代码存储到页面中返回给其他用户。

0×03 Services_status.widget.php脚本中的反射型XSS

我们发现,widgets/widgets/services_status.widget.php脚本也没有对用户提供的数据进行恰当地封装处理。例如,对于下面所示的代码,我们可以直接将POST变量servicestatusfilter赋值为 $config[widgets'][servicestatusfilter]',因为该脚本并没有对用户输入进行任何的“消毒”处理。之后,我们可以利用HTML代码来显示这个变量的值。

继续阅读

用java PreparedStatement就不用担心sql注入了吗?

 先感慨下,好久没写博客了,一是工作太忙,二是身体不太给力,好在终于查清病因了,趁着今天闲下来,迫不及待与读者交流,最后忠告一句:身体是活着的本钱!

言归正传,对java有了解的同学基本上都体验过JDBC,基本都了解PreparedStatement,PreparedStatement相比Statement基本解决了SQL注入问题,而且效率也有一定提升。

继续阅读

从黑客角度深入剖析跨站请求伪造

在对Web应用程序进行测试的过程中,我们使用的自动化工具有时候会漏掉一些非常严重的安全漏洞。跨站请求伪造便是其中之一。因此,对于Web应用测试来说,通过人工方式分析代码是非常重要的一种测试手段。

在近期的Web应用测试过程中,我利用手工方式发现了若干个CSRF漏洞,如果将其串联使用,就能演变成更加严重的安全漏洞。下面,本文将详细介绍这些漏洞的发现过程,并演示如何利用它们来控制受害者的账户。需要注意的是,为了保护客户信息,部分内容已经做了模糊处理。

继续阅读