4_跨站脚本攻击—XSS_1

0x00 xss简介

跨站脚本攻击(Cross site script ),为了避免和样式CSS混淆,所以简称XSS;

XSS是一种经常出现在Web应用上的计算机安全漏洞,也是web中最主流的攻击方式;

跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS是指攻击者利用网站没有对用户提交的数据进行转义或者过滤不足,然后进而添加一些代码,嵌入到web应用中,使别的用户访问会执行相应的恶意代码;从而窃取用户资料,获取用户身份,或者对访问者进行病毒侵害的一种攻击方式。

XSS的危害:

  • 盗取各类用户账号,如机器登录账号,用户网银账号,各类管理员账号
  • 控制企业数据,包括篡改,读取,添加,删除企业敏感数据的能力
  • 窃取企业重要的具有商业价值的资料
  • 非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害机器向其他网站发动攻击

 XSS reflected

 反射型XSS一般不存储信息,

 好像是让你输入东西,

 然后把输入的东西再回显出来。

 

哦, 发现,代码被执行了

 

http://192.168.153.139/dvwa/vulnerabilities/xss_r/?name=hello+%3Cscript%3Ealert%28%22xss%22%29%3C%2Fscript%3E#

这个链接,一旦被其他用户点开,那么其他的用户就会中招;

<?php

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

 $isempty = true;

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

?>

XSS Stored

<?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>' );
   
}

?>

  

 这是一个留言框,我们依然测试一下,上面的代码;

代码依然被执行了;

 

我们换一个浏览器登录;

 打开那个东西,依然可以显示出来那段代码;这说明这个代码成功的被挂在这个界面;

DOM型xss

DOM型XSS:基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。
 
 
 
 
 
XSS 的主要原因是因为,服务器对客户端的过度信任。

猜你喜欢

转载自www.cnblogs.com/delongzhang/p/12212654.html