buuctf web xss之光

摘要:
前言最后正在学习了解有关xss的知识。实战今天我们用的是buu里的一道题)——XSS之光。知识点我们发现只有一个index.php。此方法必须返回一个字符串如何造成xss漏洞呢。这时就会构成xss漏洞,我们看exp里的Error类,Error类是php的一个内置类,用于自动自定义一个Error,在php7的环境下可能会造成一个xss漏洞,因为它内置有一个toString的方法。此类适用于php7版本,同样有等效的原生php类还有Exception,适用于PHP5、PHP7。
前言

最后正在学习了解有关xss的知识。所以拿一些题来学习。从实战中学习嘛。

OK,话不多说,整活!!!

实战

今天我们用的是buu里的一道题)——XSS之光。听着名字还蛮好听的。

那我们先打开靶场。页面显示的就只是gungungun,真让人火大。参考了一下大佬的文章

工具的安装

首先还需要两个工具。dirb扫描目录(kali自带)和githack

dirb使用方法:dirb 网址

githack是需要自己安装的,本人在kali里安装的。

安装方法:git clone https://github.com/lijiejie/GitHack
使用方法:python GitHack.py 网址/.git
执行后会在本目录生成以网址为名字的文件夹

解题

首先我们先扫描一下目录,会发现.git泄露

那我们就用GitHack将源码下载下来。

buuctf web xss之光第1张

知识点

我们发现只有一个index.php。里面有一段代码

<?php
$a = $_GET['yds_is_so_beautiful'];
echo unserialize($a);
?>

这里有一个知识点是_to string()

当对象被当作一个字符串使用时候调用时,会触发:_to string()

__to String() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串

如何造成xss漏洞呢。我们来看,

<?php
$a = unserialize($_GET['abc']);
echo $a;
?>

exp:

<?php
$a = new Error("<script>alert(1)</script>");
$b = serialize($a);
echo urlencode($b);
?>

如果将exp传入到源码里去,这时它会弹出一个会话框显示1(这里有点前端基础的都会明白)。这时就会构成xss漏洞,

我们看exp里的Error类,Error类是php的一个内置类,用于自动自定义一个Error,在php7的环境下可能会造成一个xss漏洞,因为它内置有一个toString的方法。

此类适用于php7版本,同样有等效的原生php类还有Exception,适用于PHP5、PHP7。用法与error是一样的这里不在详细说明。

题目

我们上面已经拿到源码,源码就只有一个反序列化过程。然后大佬的文章上面说的是。需要找到php内置类来进行反序列化,而且还有echo,

有了它我们就有足够条件来使用_toString方法的类进行反序列化,我们使用Exception

就可以构造一小段代码:

<?php
$a = new Exception("<script>window.location.href='https://www.baidu.com'</script>");
echo urlencode(serialize($a));
?>

这里的window.location.href= 是运用了xss跳转

主要形成原因是 以前网站外部跳转时是直接接受参数然后跳转,导致了URL重定向漏洞.而现在网站喜欢加个跳转页,不会直接跳转,而是接受参数然后用js跳转. 这就有一个问题 如果未验证参数, js跳转时是可以接受js伪协议执行js代码的.

跑一下这个脚本然后再抓包就可以在响应头里面获得flag

buuctf web xss之光第2张

url解一下码即可

参考文献

xss之光

反序列化之php原生类利用

跳转xss

免责声明:文章转载自《buuctf web xss之光》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[原创]阿里云RocketMQ踩过的哪些坑session 详细解析(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WEB漏洞挖掘技术总结

漏洞挖掘技术一直是网络攻击者最感兴趣的问题,漏洞挖掘的范围也在随着技术的提升而有所变化。在前期针对缓冲区溢出、格式化字符串、堆溢出、lib库溢出等技术都是针对ELF文件(Linux可执行文件)或者PE文件(Win可执行文件)的漏洞挖掘技术。   在针对ELF文件、PE文件(*.exe与*.dll)的漏洞挖掘过程中,出现了很多的漏洞挖掘技术,但是针对PE文件...

xss攻击方式以及防范介绍

xss攻击方式以及防范 通常来说,网站一般都是有着,用户注册,用户登录,实名认证等等这些需要用户把信息录入数据库的接口 xss找的就是这种接口,他们可以在传递数据的时候,传递恶意的 script 代码,如果你就这样插到数据库里面去了 那么恭喜你,中招了,但是此刻你还没有gg 如果他刚提交的时候,你碰巧在浏览数据库,看到了他,在没执行脚本之前删掉了 并且加了...

跨站脚本攻击(XSS)

XSS——通过“HTML 注入” 篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器。 XSS 分类: 1. 反射性 XSS:把用户输入的数据 “反射” 给浏览器,往往需要诱使用户 “点击” 一个恶意链接,也叫非持久型 XSS。 2. 存储型 XSS:把用户输入的数据 “存储” 在服务器端,当其他用户打开包含有该数据的页面时执行其中可能包含...

20155331《网络对抗》 Exp9 Web安全基础

20155331《网络对抗》 Exp9 Web安全基础 实验过程 WebGoat 在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat。 打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,使用默认的账号密码即可登陆。 XSS攻击 Phishing w...

Java 审计 之过滤器防御xss

Java 审计 之过滤器防御xss 0x00 前言 本文从攻击与防守两个角度来思考一些审计中的小细节。在前面两篇的xss审计中,写少了一个比较重要的点,就是Filter过滤器。都说Java的审计第一步就是先看web.xml,能看到该cms使用的是哪些框架来进行开发。其次就是看其有没有配置的一些过滤器。 审计文章: Java审计之XSS篇 Java 审计之x...

常见的php攻击(6种攻击详解)

1、SQL注入 SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行。还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对shell命令。 [python] view plain copy $username=$_POST['username']; $query="sele...