重新认识被人忘记的HTTP头注入

访客6年前黑客工具1385

注入类缝隙经久不衰,多年保持在owasp Top 10的首位。今日就聊聊那些被人忘掉的http头注入。用简略的实践代码进行演示,让每个人更深入的去知道该缝隙。
HOST注入
在以往http1.0中并没有host字段,可是在http1.1中增加了host字段,并且http协议在实质也是要树立tcp衔接,而树立衔接的一起有必要知道对方的ip和端口,然后才干发送数据。已然现已树立了衔接,那host字段究竟起着什么样的的效果?
 Host头域指定恳求资源的Intenet主机和端口号,有必要表明恳求url的原始服务器或网关的是比方www.test.com和mail.test.com两个域名IP相同,由同一台服务器支撑,服务器能够依据host域,别离供给不同的服务,在客户端看来是两个彻底不同的站点。
Host头试验总结:在http 1.1中不能缺失host字段,假如缺失, 服务器回来400 bad request,http1.1中不能缺失host字段,但host字段能够是空值。
0×01 暗码重置的中毒
 信任我们忘掉暗码时,运用邮箱找回暗码并不生疏。看上去貌似能牢靠只能发送到你绑的邮箱去重置暗码。并且运用你自己共同的密钥令牌才干重置成功。可是很多cms和实践场景为了获取网站的域名拼接秘钥令牌的办法将衔接发送到你的邮箱。可是往往获取正确的域名并不是非常的不容易, 然而用一个固定的URI来作为域名会有各种费事。所以一般程序员会选用(java)request.getHeader(“Host”); (php)$_SERVER['HTTP_HOST']的办法来获取域名。
上面所述的两种获取域名的办法并不牢靠。都能够人为的去操控。导致当域名和令牌拼接时,攻击者经过篡改hsot值生成垂钓衔接,当受害者点击时,受害者的秘钥令牌将会直接发送到攻击者的服务器上。使其受害者的暗码被攻击者篡改。
文字看上去比较绕的话,我在本地用代码将此处的事务场景进行了复现。
public class FindPass extends HttpServlet{
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  {
    //此处实在场景的话,是依据输入的账号去查对应的邮箱。就不繁琐的结构了。
        String email =request.getParameter("email");
   //此处获取了host头中的host字段,此值能够被攻击者篡改
        String Host =request.getHeader("Host");
        int max=200000000;
        int min=100000000;
        Random random = new Random();
      //生成随机的秘钥令牌
        int randomNubmer = random.nextInt(max-min) + min;
        String content= "用户您好:
现在给您发送邮件的XX银行体系,您的账户"+email+"恳求找回暗码!
" +
                "只需在提交恳求后的三天之内,经过点击下面的链接重置您的暗码:
"+
                "http://"+Host+"?id="+randomNubmer;
      //此处用Host拼接了秘钥名牌
 
        try {
      //调用发信接口
            SendEmail.send(email, content);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(email+Host);
    }
}
提交找回暗码表单,篡改其间的host头值。

当用户收到暗码重置邮件后,发现是垂钓者的网址,且秘钥令牌也已参数id的方式传给给攻击者,此刻攻击者能够直接运用受害者的令牌进行暗码重置。

0×02 XSS:
有些网站会依据HTTP_HOST字段来进行加载css样式表。假如要为固定的话,当域名发作改动时,那么站内一切的css行将失效。并且修正的时分也将的非常头疼,由于每个页面都会引证很多的公共资源。如下是我重构的场景重现:
echo
"stylesheet" type="text/css" href="http://{$_SERVER['HTTP_HOST']}?id=111111" />
EOT;
echo $_SERVER["HTTP_HOST"];
?>


[1] [2] [3]  黑客接单网

相关文章

Python爬虫开发(五):反爬虫办法以及爬虫编写注意事项

在关于爬虫技能点的一系列文章完结之后,想到由一个读者在谈论区留言期望了解一下爬虫和反爬虫的内容,在自己预备一番之后,预备就这个问题进行一些介绍,期望能帮到期望了解这一方面的读者。 0×01 介绍 爬虫...

SMTP用户枚举原理简介及相关东西

SMTP是安全测验中比较常见的服务类型,其不安全的装备(未禁用某些指令)会导致用户枚举的问题,这主要是经过SMTP指令进行的。本文将介绍SMTP用户枚举原理以及相关东西。 SMTP SMTP指令 若服...

黑客qq群,找黑客找人,找黑客帮忙修改学校成绩

Level 13 → Level 14[1][2][3][4]黑客接单渠道一般咱们在Google上面找SQL注入缝隙的时分,关键字会这么结构:图2存在SQL通用防注入体系咱们来看一下代码: Sm...

黑客密码破解业务接单_去哪里找黑客合作

在介绍SharedArrayBuffers之前,我需求解说一下并行运转代码和JavaScript。 有向文件中增加如下内容: 电话号码是从哪里来的黑客密码破解业务接单,去哪里找黑客合作 · 运用多项高...

吾爱破解网官网,大学找黑客改gpa,找黑客查自己的手机通话记录犯法吗

绕过姿态二:空白字符http://tiechemo.com/page.asp?id=1 AND ISNULL(ASCII(SUBSTRING(CAST((SELECT LOWER(db_name(0)...

顶级黑客24小时接单,找黑客费用,去哪里找黑客技术

Version : 1.11.0操作机:Windows XP [172.16.11.2]Check Point周二发布的详细陈述称,进犯者运用主动缝隙扫描器合作一些手动方法来寻觅网站和网页运用中的缝...