跨站漏洞解析-小韩网站编程安全系列一(2)
作者:小韩 来源:蓝色经典 发布时间:2007-07-13 10:06:00
构建跨站脚本攻击
哈哈,如果你是一个坏坏的用户,那么看到这里你一定很开心了,你认为自己将学会如何做一名骇客,不过我只能很遗憾的告诉你,想都不要想,呵呵,重复我经常说的一句话,以下内容禁止心智不成熟的未成年人观看,其中涉及的内容仅作为教学和研究使用,严禁利用这里所讲授的知识进行不法侵害行为。
在这里我拿出以前做的几个案例笔记(全文大多数都发表在了《黑客X档案》中),在案例中进行分析说明,大家不要小看这些案例,这些案例中大多数都是网上有大量网站使用的知名程序,可想而知危险之大。
案例一:Discuz4.1.0论坛出现的WAP跨站漏洞
Discuz论坛允许使用手机访问论坛wap目录来访问论坛,用wap方式访问论坛时可以查看帖子和发送帖子、短消息等,但是其服务器端的处理过程并没有过滤wap方式发帖的标题,使得我们可以输入特殊构造的字符而引发跨站攻击。
作为程序员的你认为用户在使用手机WAP方式访问论坛时候就不可能写入恶意代码从而不能攻击而不对WAP部分进行处理吗?那你就错了,实际上,有很多软件可以模拟访问WAP,Opera就可以,在PC上使用某些特定的客户端软件(WinWAP、Opera)等,访问WAP网站,即可以输入跨站字符,这里可以在标题中输入<script>alert('XSS')</script>,当PC用户访问论坛时,就会触发这些代码。
从这个案例中,你应当学到,不要认为客户端的限制就可以疏忽对用户输入的检测和过滤了,只要可以通过HTTP协议访问,那么无论客户端是什么,有什么限制,都是不安全的。
案例二:“飞骋”网站日记跨站漏洞。
首先来看飞骋日记服务,一般来说对于像日记这种一个人写,N多人看的东东,我们要考虑的就是XSS跨站漏洞了。在下面的内容中,我们试着用代码<script>alert(“玄猫啊玄猫,玄猫要高考咯”)</script>来测试能不能在页面上运行我们的Javascript脚本。
我们打开一个写日记的页面,先测试内容能不能写跨站脚本,日记标题随便写,内容写个<script>alert(“玄猫啊玄猫,玄猫要高考咯”)</script>,然后去看看,不难看到,我们写的script被替换成了s cript,(图一)中间多了个空格,再来改变大小写试试,内容写<Script>alert(“玄猫啊玄猫,玄猫要高考咯”)</script>,还是不行,看来要想个变通的方法了,我们找找还有哪些是可以输出的,对了,标题,可是有的朋友会有疑问,标题就让写10个字,不够啊,我们再来把文件保存到本地,研究form的验证:232行有个<FORM id=frmAnnounce name=frmAnnounce onsubmit="return checkform();"的代码,不难看出,这个onsubmit触发的函数就是检查标题字数的代码,我们删掉onsubmit="return checkform();",然后把action补全,标题内填入<script>alert(“玄猫啊玄猫,玄猫要高考咯”)</script>,内容随便写些东西,提交,在随后刷新出的页面里,优雅得弹出了我们的对话框,跨站成功。
在这个案例中,首先进行了最简单的测试内容的输入,即弹出一个对话框,而此时发现网站代码对script进行了过滤,这时再次尝试Script,如果程序员仅简单的过滤了script时,则Script可能是可用的,但是最终发现还是不行,那么则转到标题处,显然标题处通过maxlength这个属性限制了文本框所能输入的最长字节数,并且使用js脚本来检测了用户的输入,这些当然都不成为问题,我们只要将页面保存到本地,就可以修改了,删除maxlength属性和验证的js代码后,再提交即可。
从这个案例中你应当学到:
1、 过滤危险字符时候考虑字符是否可以以大写变换的方式绕过验证
2、 Js脚本检测用户输入合法性是无效的。
3、 用户可能直接向服务器提交数据,并且这里我告诉你,所谓防止外部提交的代码是绝对无效的,那个方法是通过检测HTTP_REFFER的HTTP头来实现的,而其实这个HTTP头也是可以伪造的。
案例三:PhpArticle2密码输入错误记录跨站漏洞
PhpArticle是一款基于php+mysql的整站文章系统,页面清爽、速度快,并且功能比较完善,尤其是后台有个记录别人尝试登陆时输入的错误密码的功能……比较实用……还可以 * 别人都习惯用什么密码(一般人尝试密码的时候总是按照自己的习惯来尝试别人的密码),但是我突然想到,如果我们尝试在错误的用户名或者密码中输入特殊字符呢……
进入后台登陆页面,然后用户名和密码分别写我们构造的用于测试的跨站代码。
“用户名”中填写:
<script>alert("XSS")</script>
“密码”中填写:
<script>alert("XSS")</script>
然后我们用管理员的密码去登陆后台,查看“管理日志->非法登陆记录”,这时弹出了第一个对话框,点击“确定”后又出现了第二个对话框,看来这两个地方是存在跨站漏洞的。
好的,既然确定了有跨站漏洞,我们来思考下应该怎么利用比较能达到收益最大化……这里要来一个提升网站用户权限的利用。
这里有必要先给不熟悉PhpArticle的朋友介绍下,在后台改管理员密码的地方是要求填写当前密码的,所以我们是无法利用的,其他操作我也暂时没有想出好的利用方法,现在我们要做的就是把我们自己注册的用户添加到系统的管理员组中,达到提升权限的目的。
当我们可以在页面插入任意代码的时候,我们其实有许多选择,譬如插入javascript脚本内容,当限制提交字符数的时候我们可以插入javascript脚本文件(<script src=""></script>这样),还可以插入iframe在页面中隐藏一个任意网页(骇客用来挂马),这里我们的思路是利用管理员登陆的身份来提升权限,所以我们就模仿程序的用户管理页面,来仿造一个页面,并使用iframe的方法插入这里。
好了,先来看如何构造表单。
在构造表单之前我们要确定下这个表单是否允许外部提交,我们以管理员身份登陆后,打开会员编辑这个页面:http://www.xxx.cn/admin/user.php?action=mod&userid=38,然后将其另存到本地,然后修改form控件的action属性,打开后提交,程序提示修改成功,看来是允许外部提交的(其实也可以直接看代码的……嘿嘿,我不是懒嘛)。
因为嫌PA的页面太不符合WEB标准,做自动提交的时候总是出现javascript错误,我们来自己构造一个表单,通过查看源代码,我们可以构造一个只有几个必填字段的表单,然后在body标签后加属性onLoad,值为javascript:document.forms[0].submit(),即当页面载入时自动提交表单。
这里我们还有一个要注意的地方,就是自己的userid,在构造表单的时候我们要用到这个值,怎么获得userid呢,我们需要登陆后在cookies里找pauserid的值。
在这个案例中,我们在构造跨站利用时候采取了一种十分“恶毒”的手段,就是插入一个iframe指向我们自己的网页,在这个网页中,我们完整的复制了原始代码中的表单部分,并将某些内容修改为我们需要进行的操作,最后再让这个表单自动提交。


猜你喜欢
- 1. 介绍本文主要介绍域名(DNS)的一些机制及实现方法,下面我们就具体看一下它的情况。1.1. 域名的历史产生域名的的根本动机在于管理方便
- unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间。无论何时,只要文件内容被改变,mtime的值就会被相应修改。第
- 国外有很多的主机商都只是提供Linux的服务器,我看了有不少站长其实也是需要Windows的服务器的,比如你的网站是ASP.NET或者是AS
- 介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?首先
- 相信很多人都曾经被面试官问过这样的问题:”你对自己未来5年的职业规划是怎样的?“,每当我被问起这个问题时,我的脑海中总是会浮现出《Twist
- 1.获取当前脚本的真实路径:#!/bin/bashif [[ $0 =~ ^\/.* ]] #判断当前脚本是否为绝
- 为了使各企业使用谷歌AdWords进行市场营销时能更加顺畅,编辑特制作了“谷歌网络营销点金术”系列专
- 最近在使用 Ubuntu 20.04 的kazam进行录音的时候,发现了一个问题:使用系统默认的配置进行录音,录制出来的音频会有明显的噪音,
- 一、什么是权重网站在seo中的重要性,权威性。SEO给一个网站的一种待遇。英文:Page Strrngth1. 权重不等于排名2. 权重对排
- 我们的防火墙是不是经常有人来攻击你XXX端口呢?如果关掉相应没有用处的端口不就好了吗? 一般来说,我们采用一些功能强大的反黑软件和防火墙来保
- 不知道多久以前,上网是被作为一门技术来看待的,甚至曾经有人把上网和开车一起看成21世纪必须掌握的两门技术之一,internet是神秘的,是高
- 23. 服务名称: helpsvc显示名称: Help and Support服务描述: 启用在此计算机上运行帮助和支持中心。如果停止服务,
- 一、软件、系统镜像软件:VMware 14镜像:CentOS8 ,镜像官网下载地址 :http://mirror.jdcloud.com/c
- 如果说病毒制造者是造成目前网络上病毒肆虐的罪魁祸首,那么为病毒四处传播“提供”渠道的各种网络通信形式
- 通过论坛、留言板和讨论组来将你的AdSense收入最大化!在第8章,我们讨论了如何通过博客来创造收入,不过博客当然不是互联网上唯一的内容,也
- 前天收到淘宝点击时装美女掌柜的消息“淘宝网首页悄悄的改版了”。本次淘宝网改版将淘宝商城和支付宝等构架全面融合,整体资源在首页也得到了更加平衡
- 1、勤奋:我是很建议这样做的,如果一件事你根本没花多少精力去做就成功了,那我只能说你是GOD,佩服!2、动脑:光有勤奋不够,必须在勤奋的基础
- 随着虚拟化技术不断向前发展,许多单位面临着实施虚拟化的诱人理由,如服务器的整合、更快的硬件、使用上的简单、灵活的快照技术等。这都使得虚拟化更
- 1、查看内存槽数、那个槽位插了内存,大小是多少dmidecode|grep -P -A5 "Memory\s+Device&quo
- 介绍在日常的维护过程中创建用户操作用的相对会多一些,但是在这个过程中涉及到的知识点就不单单就是useradd了,接下来就来详细了解账号管理的