7.XSS注入

<a href="#MIDDLE"><h3>点击跳转到MIDDLE级别</h3></a><a href="#HIGN"><h3>点击跳转到HIGN级别<h3></a>

1.LOW级别:

<script>alert(/xss/)</script>
image.png

<a id="MIDDLE">--------------------------------------------------------------------------------------------------------------------</a>

2.MIDDLE级别:

对输入进行了过滤,基于黑名单的思想,使用str_replace函数将输入中的<script>删除,但没有考虑到大小写。

<?php 
// Is there any input? 
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { 
    // Get input 
    $name = str_replace( '<script>', '', $_GET[ 'name' ] ); 
    // Feedback for end user 
    echo "<pre>Hello ${name}</pre>"; 
} 
?>

大小写转换一下:

<ScrIpt>alert(/xss/)</scRipt>
image.png

<a id="HIGN">--------------------------------------------------------------------------------------------------------------</a>

3.HIGN级别:

<?php 
// Is there any input? 
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { 
    // Get input 
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); 
    // Feedback for end user 
    echo "<pre>Hello ${name}</pre>"; 
} 
?>

High级别的代码同样使用黑名单过滤输入,preg_replace() 函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。

<img src=1 onerror=alert(/xss/)>
避免出现script字样即可
image.png

怎么防御XSS攻击?

1.html编码
2.对<,>等进行转义
3.给网站请求加上http-only


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 指令集 lua_capture_error_log lua_use_default_type lua_malloc...
    吃瓜的东阅读 14,144评论 0 2
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,257评论 2 33
  • 近十年来,WAF 已经逐渐发展成熟,被软件行业接受并成为无数企业保护应用的不二选择。很多大型企业甚至相继亲自设计或...
    OneAPM阅读 4,578评论 0 1
  • —《管理的觉醒》 你要想得到一个有敬业精神的人,就得在他的内心建立一个敬业的坐标系、参照系。 【思考】 都说父...
    徐猛_Merlin阅读 1,877评论 5 0

友情链接更多精彩内容