本文目录一览:
- 1、哪有放XSS跨站脚本工具的第三方工具/
- 2、php下怎样防止XSS攻击
- 3、$this->input->post(“”,true)和$this->input->xss_clean($this->input->post(“”)),
- 4、CI 防注入方面,到底过滤特殊字符没有
- 5、漏洞可以随便挖吗
- 6、 *** 工程师基础书籍推荐几本
哪有放XSS跨站脚本工具的第三方工具/
不修改网站程序,使用第三方工具来防范XSS跨站式脚本攻击
网站要怎么防范常见的XSS跨站式脚本攻击呢,我们先从XSS跨站式脚本攻击的原理来说起。
网站遭受XSS跨站式脚本攻击的基本原理
1.本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
其攻击过程如下所示:
A给B发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。
2反射式漏洞,这种漏洞和本地利用漏洞有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
其攻击过程如下:
A经常浏览某个网站,此网站为B所拥有。B的站点运行A使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。
C发现B的站点包含反射性的XSS漏洞。
C编写一个利用漏洞的URL,并将其冒充为来自B的邮件发送给A。
A在登录到B的站点后,浏览C提供的URL。
嵌入到URL中的恶意脚本在A的浏览器中执行,就像它直接来自B的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在A完全不知情的情况下将这些信息发送到C的Web站点。
3存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
其攻击过程如下:
B拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
C注意到B的站点具有存储式的XXS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人如A浏览该信息,其会话cookies或者其它信息将被C盗走。
类型A直接威胁用户个体,而类型B和存储式漏洞所威胁的对象都是企业级Web应用。
网站遭受XSS跨站式脚本攻击的基本方式
1. DOM-based cross-site scripting
页面本身包含一些DOM对象的操作,如果未对输入的参数进行处理,可能会导致执行恶意脚本。如下面一些DOM操作:
document.URL
document.URLUnencoded
document.location (and many of its properties)
document.referrer
window.location (and many of its properties)
举个例子,假如某个脆弱的页面的代码如下:
HTML
TITLEWelcome!/TITLE
Hi
SCRIPT
var pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length));
/SCRIPT
BR
Welcome to our system
…
/HTML
攻击者使用如下的URL访问时,则非常危险:
;scriptalert(document.cookie)/script
试了一下,貌似IE、FireFox等浏览器默认 对scriptalert(document.cookie)/script进行了编码,阻止了脚本的执行。但是对于 DOM操作还是要更加谨慎啊,比如把上面的页面修改一下,安全性就增强了不少:
SCRIPT
var pos=document.URL.indexOf("name=")+5;
var name=document.URL.substring(pos,document.URL.length);
if (name.match(/^[a-zA-Z0-9]$/))
{
document.write(name);
}
else
{
window.alert("Security error");
}
/SCRIPT
2. Reflected cross-site scripting
也被称为None-Persistent cross-site scripting,即,非持久化的XSS攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL,当 URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常浏览网页时,站点从数据库中读取了非法用户存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方出现。
实施方式
我们来试一把Reflected cross-site scripting。当我们在某网站输入参数XXX,发现参数XXX原样的出现在了页面源码中:
1. input type="text" class="24d8-ee1e-b0b9-a9fa Seach" name="w" value="XXX" /
OK,可以开始做文章了,我们将XXX替换为:abc"/scriptalert('haha')/scripta href=",返回的HTML代码如下:
1. input type="text" class="ee1e-b0b9-a9fa-f0ee Seach" name="w" value="abc"/
2. scriptalert('haha')/script!--" /
这样,scriptalert('haha')/script被执行了。这里再举例一些XSS攻击行为:
1. IMG SRC="javascript:alert('XSS');"
2. IMG SRC=javascript:alert('XSS')
3. IMG SRC="javascript:alert(String.fromCharCode(88,83,83))"
4. IMG SRC="jav ascript:alert('XSS');"
5. SCRIPT/XSS SRC=""/SCRIPT
6. SCRIPTalert("XSS");///SCRIPT
7. iframe src=
8. INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');"
9. BODY BACKGROUND="javascript:alert('XSS')"
10. BODY ONLOAD=alert(document.cookie)
11. BODY onload!#$%()*~+-_.,:;?@[/|"]^`=alert("XSS")
12. IMG DYNSRC="javascript:alert('XSS')"
13. IMG DYNSRC="javascript:alert('XSS')"
14. BR SIZE="{alert('XSS')}"
15. IMG SRC='vbscript:msgbox("XSS")'
16. TABLE BACKGROUND="javascript:alert('XSS')"
17. DIV STYLE="width: expression(alert('XSS'));"
18. DIV STYLE="background-image: url(javascript:alert('XSS'))"
19. STYLE TYPE="text/javascript"alert('XSS');/STYLE
20. STYLE type="text/css"BODY{background:url("javascript:alert('XSS')")}/STYLE
21. ?='SCRIPTalert("XSS")/SCRIPT'?
22. A HREF="javascript:document.location=''"XSS/A
23. IMG SRC=javascript:alert('XSS')
24. EMBED SRC="" AllowScriptAccess="always"/EMBED
25. a="get";
26. b="URL(""";
27. c="javascript:";
28. d="alert('XSS');"")";
29. eval(a+b+c+d);
总结一下,要防止XSS跨站式脚本攻击主要是要在查询字符串(QueryString),表单数据(PostData)以及Cookie甚至HTTP报头(Header)中防止掉一些javascript关键字和一些敏感的字符(单引号,分号)以及SQL语言的关键字,以及防止他们使用encode编码。
用ASP或者PHP脚本来实现上面的这些想起来就很麻烦。下面就来介绍下用一个第三方工具IISUTM来处理上面我们说到的问题。
准备工作:先去下载最新的IISUTM版本。
根据IISUTM网站防火墙安装及操作手册 中的说明把IISUTM部署到你的服务器上来,这里需要注意的是使用Windows 2003+iis6的服务器,需要开启iis中“以IIS5.0 隔离模式运行 www 服务”选项才能正常使用该软件。
安装完成,通过浏览器访问IISUTM的配置管理界面默认的是,这个是私有地址,只能在该服务器 *** 问,你需要任何地方都能访问的话,可以在安装的时候IP地址的选项那里填入你服务器的公网IP地址,和你所开放的端口。这样你就可以通过你配置的地址进行访问,或者你可以在iis中直接管理名为IISUTM的站点。
登陆管理界面后点击上面导航栏中的“基本设置”,然后点击左边菜单的“防XSS攻击”链接。
开启该链接里所有的选项,选中之后IISUTM会自动保存配置,下面的“使用不允许的发送序列”是该软件提供的XSS攻击关键字的特征库,你可以根据你网站的情况进行更改(更好不要修改)。
确认以上的配置以后,你可以返回到IISUTM管理界面的首页,这里会列出最近服务器遭受到的攻击以及详细,赶紧去看看你的网站是不是随时有人在进行SQL注入吧,以及哪些攻击被IISUTM处理掉了。
php下怎样防止XSS攻击
在PHP中修补XSS漏洞,我们可以使用三个PHP函数。
这些函数主要用于清除HTML标志,这样就没办法注入代码了。使用更多的函数是htmlspecialchars() ,它可以将所有的""与""符号转换成"" 与"gt;"。其它可供选择的函数还有htmlentities(), 它可以用相应的字符实体(entities)替换掉所有想要替换掉的特征码(characters)。
PHP Code:
?
// 这里的代码主要用于展示这两个函数之间输出的不同
$input = 'scriptalert(1);/script';
echo htmlspecialchars($input) . 'br /';
echo htmlentities($input);
?
htmlentities()的另一个例子
PHP Code:
?php
$str = "A 'quote' is bbold/b";
echo htmlentities($str);
echo htmlentities($str, ENT_QUOTES);
?
之一个显示: A 'quote' is bbold/b
第二个显示:A 'quote' is bbold/b
htmlspecialchars()使用实例
PHP Code:
?php
$new = htmlspecialchars("a href='test'Test/a", ENT_QUOTES);
echo $new;
?
显示: a href='test'Test/a
strip_tags()函数代替.删除所有的HTML元素(elements),除了需要特别允许的元素之外,如:i, b 或p.
strip_tags()使用实例
PHP Code:
?php
$text = 'pTest paragraph./p!-- Comment -- Other text';
echo strip_tags($text);
echo "\n";
// allow p
echo strip_tags($text, 'p');
?
现在我们至少已经知道有这些函数了,当我们发现我们的站点存在XSS漏洞时就可以使用这些代码了。我最近在我的站点上的GoogleBig(一个Mybb论坛的插件)视频部分发现了一个XSS漏洞,因此我就在想如何使用这些函数写段代码来修补这个搜索漏洞。
首先我发现问题出在search.php这一文件上,现在让我们看看这个查询及输出查询结果中的部分代码研究一下:
PHP Code:
function search($query, $page)
{
global $db, $bgcolor2, $bgcolor4, $sitename, $io_db, $module_url, $list_page_items, $hm_index;
$option = trim($option);
$query = trim($query);
$query = FixQuotes(nl2br(filter_text($query)));
$db-escape_string($query);
$db-escape_string($option);
alpha_search($query);
...
在这种情况下,我们通过使用$query这一值作为变量,然后使用htmlentities()这一函数:
PHP Code:
$query = FixQuotes(nl2br(filter_text(htmlentities($query))));
如果你对这三种函数还有有疑问可以使用PHP手册来查看:
$this->input->post(“”,true)和$this->input->xss_clean($this->input->post(“”)),
这是CI 里的吧 虽然接触CI 不多 但个人感觉$this-input-post("",true) 好点 。之前有用过xss_clean 这个 直接 Post 都无法提交了 直接失败 。貌似是那里需要配置怎么的 接触不多 可在官 方手册 下查下
CI 防注入方面,到底过滤特殊字符没有
看这里
... sql_driver.php#L301
$this-input-post('name',true);
这个是XSS过滤
手册有注明的
首先要搞清 xss 过滤,和sql注入是两码事,两个转义的方式不同,你给出的需要过滤的串 不需要转义。
你可以验证xss 过滤 script xss 过滤是可以的,至于说防止sql注入,不要怀疑ci 防注入的能力,你可以亲自注入一下。就知道结果了
漏洞可以随便挖吗
今天测试时发现一个任意用户登录漏洞,简单记录一下(em...写得真的很简单的那种!)
登录成功后的一个请求,里面包含了当前登录用户的用户名和user_id:
后面紧接着一个包含敏感信息的数据包,如下:
可以看到返回信息中包含了当前用户的密码MD5,且可以正常解密。更换为其他的user_id:
可以看到,返回了其他user_id的密码,但是,正常情况下,只有在成功登录一个用户后才能获取用户的user_id,所以要想登录他人账户,必须要知道user_id值对应的用户名.....,既然系统会有一个返回密码的数据包,那就可能有其他的敏感信息返回数据包,于是打开burp的hsitory,底部搜索user_id,终于在茫茫数据包中发现了一个接口:
一个请求,通过登录用户名,返回信息包含了该用户名对应的user_id:
通过id获取密码:
不断遍历用户名可以获得更多的user_id,也就可以通过上面的请求获取更多的用户密码MD5,通过解密后的用户名密码即可登录任意用户:
漏洞挖掘类型总结
如果你刚刚好是一个刚刚学完基础的小白,如果你刚刚好没有参加各种培训,完全自学。
那么你的漏洞清单可能是这样的。
暴力破解漏洞
sql注入漏洞
命令执行漏洞
xss漏洞(跨站脚本)
csrf漏洞(跨站伪造请求)
xxe漏洞
文件上传漏洞
文件包含漏洞
各cms的公开漏洞
没错差不多就是这样的。当然也有可能一些没用写到,因人而异。
如果你有幸看到一个大佬的漏洞清单。那么有可能除了上面那些,还多了下面这几项 逻辑漏洞
ssrf漏洞
信息泄露
js文件可能存在的未授权访问
组合漏洞
……
然而这些也只是一部分,不过我不是大佬,不过欢迎大佬补存,下面我就单讲一下我补充的几种漏洞类型吧。
3: 漏洞类型详解
正式开始前插一条,我之前对漏洞的定义有一点点误解,以为只有上面列表上的才是漏洞,其实不然,只要可以给厂商带来损失的全都是漏洞。逻辑漏洞也是基于这条。回顾一下自己的挖掘过程,其实漏掉了很多。
逻辑漏洞
逻辑漏洞也是一个经久不衰的话题,不过逻辑漏洞并不像前面几种漏洞,可以用扫描器去扫,逻辑漏洞目前,据我所知是没有一个扫描器可以敢说自己能扫到逻辑漏洞的。或许有的厂家敢说自己没有一个sql注入,但是没人敢说自己没有逻辑漏洞(我想也没有厂家敢说自己没有sql注入吧,哈哈哈)。而且,由于现在waf,和防火墙的逐渐完善,sql注入,上传等漏洞,也越来越难以查找和利用,而逻辑漏洞则不存在这种问题。
何为逻辑漏洞,就是由于开发者在开发过程中,由于代码逻辑不严,而造成的一系列可以被攻击者加以恶意利用的漏洞。而逻辑漏洞也是一类漏洞的总称。
举个例子最为常见的就是以低价购买任意价格的东西的支付漏洞,或者找回密码流程控制不严格,导致的可以修改任意用户的登陆密码,还有越权,越权查看他人订单,越权查看他人个人信息等等。
当然这只是一部分,我这里也只是一个引子,具体漏洞的原理以及介绍大家可以去自行搜索关键字,有很多大佬的文章就写得比较好,不然我这篇文章就要写个几十页了。一些漏洞详情大家可以去看乌云。
信息泄露
信息泄露漏洞顾名思义就是信息泄露,信息泄露也分好多种,如。
对于源码泄露,大家可以去github上找,很多程序员会把源码开放在github上,甚至有的人用户名密码都不改的,数据库连接密码啊直接存在源码中,当然想我这种菜鸡找到这种源码泄露就直接提交了,有能力的大佬,直接就是一波审计,然后嘿嘿嘿。而对于员工信息泄露,可以在收集信息的时候收集账号,然后放在社工库跑跑,或者记录下来账号用来爆破。
组合漏洞
组合漏洞是一个可以吧低危漏洞变成高危漏洞的一个神奇的东西。比如你找到一个xss漏洞和一个csrf漏洞,如果两个漏洞单独提交,或许是两个低危,或许是两个忽略。但是如果你把你的xss和csrf组合起来就有可能变成一个高危漏洞,打组合拳,key师傅组合拳打的很厉害,向师傅看齐,key师傅给我说,挖到低危不要着急提交,存起来,万一某一天碰见一另一个漏洞,组合一下,就可以一发入魂了。
说个小技巧,如果你想要详细的漏洞列表,可以去多收集几家src的漏洞说明手册,然后去重,就是一份完美的漏洞列表。
4:个人提高漏洞挖掘能力的 ***
这一节讲一下挖掘漏洞应该如何提高和应该有哪些好的习惯。
细心放在之一位,是因为细心真的是非常非常非常重要,我有幸请教过很多大佬成功的秘籍,他们告诉我的之一个词语就是细心,正所谓心细则挖天下。很多漏洞都是需要细心才可以发现,不放过数据包中的任何一个参数,不放过网站的任意一个点,我曾问过团队的小石师傅,如何挖掘那些很多人都挖过的src,这么多人都挖过,一些功能点我还要在测一遍吗。小石师傅并没有给我直接回答,而是讲了他一个漏洞的挖掘经历,那是挖美团的时候,小石师傅直接主站开始挖,并且在个人资料一个很明显的地方,挖到了一个储存xss的高危漏洞。所以,在我们进行漏洞挖掘的时候,不要放弃任何一个可能存在漏洞的地方,每个人都有不同的挖掘方式,网站这么大,总会有几个漏测的地方,并且一个漏洞修复了,谁敢保证,修复完了,就不能再修一个漏洞出来了呢。
耐心
耐心同细心一样,可以说是一对cp。如果你本身就足够信心,那么我想你的耐心也不会差。如果说细心是你漏洞挖掘的利剑,那么耐心就是你的磨刀石,很多时候,碰到一个破站盯几天才能挖到一个漏洞,你坚持下来了就是胜利者,有人说挖洞,也是个运气活,运气好了随随便便就是几个高危,运气不好,几天也挖不到一个。虽然有一定的道理,但是当你的能力足够强,有了自己的套路,想挖漏洞还是轻松加愉快。
会看、会记
会看,会记。这个就简单了,就是要多看多记,多看漏洞详情,多看技术文章,漏洞详情可以在乌云看,还有网上很多人分享的案例,主要是乌云。看完就要记,要让你看的东西真正的成为你的东西,如果你面对一个厂商,还是有无从下手的感觉,就去乌云看漏洞详情,一个一个看,然后把漏洞出现的位置,以及使用的一些技巧记下来,成为属于自己的漏洞挖掘手册,这也是我最近在做的一个事情。还有一些好的文章,好的技巧,或许你一时半会也用不到,但是你要学会记,总有用到的一天。
懂收集
key师傅说过,漏洞挖掘说白了就是一个fuzz的过程,而fuzz最关键的是什么,就是一本高效的字典,没错我们要学会收集字典,想公开的字典有fuzzdb,是一个非常好的fuzz字典合集,当然我们在收集他人字典的同时我们也要自己收集字典,曾经看到一个大佬,搜集了github大量的开发项目的路径,然后组成字典。我也不要求小白可以写程序然后自动收集字典,但是,我们在平时的漏洞挖掘过程中,遇到的一些东西还是要多多的去收集一下,逐步慢慢的形成自己的一本专用字典,绝对可以提高你的漏洞挖掘效率。当你有一本自己收集的字典时,相信你也成为一名大佬了。
勤动手
当你看了大量漏洞,记了大量笔记,这个时候,我相信你最需要的,就是实战,实战是可以把所学所看融会贯通的最快 *** ,没有之一,只有实战可以锻炼自己的挖洞能力,和效率。看到新的漏洞多去搭建环境复现,这也是对能力的一种提升。
*** 工程师基础书籍推荐几本
回答:追忆☆梦
大师
5月13日 09:04 *** 工程师是通过学习和训练,掌握 *** 技术的理论知识和操作技能的 *** 技术人员。 *** 工程师能够从事计算机信息系统的设计、建设、运行和维护工作。
和软件工程师是不一样的。
*** 工程师的就业范围相当宽广,几乎所有的IT企业都需要 *** 工程师帮助用户设计和建设计算机信息系统;几乎所有拥有计算机信息系统的IT客户都需要 *** 工程师负责运行和维护工作。因此, *** 工程师的就业机会比软件工程师多,可在数据库管理、WEB开发、IT销售、互联网程序设计、数据库应用、 *** 开发和客户支持等领域发展。而且,薪酬待遇也不错,统计数据显示, *** 技术人员平均月薪约2000~3000元,高的则在5000元以上。
全国 *** 工程师技术水平认证考试(NCNE)
国家信息化工程师认证考试——
国家 *** 技术水平认证考试及培训报名信息
中国信息产业部为推动和引导 *** 人才培训,测评 *** 从业人员的专业技术水平,为信息化建设和信息产业发展提供更多的合格人才,信息产业部全国信息化工程师认证考试管理中心于2002年,通过与知名的国际信息技术与信息人才专业测评机构——美国国家通信系统工程师协会,联合认证,共同推出国家 *** 技术水平考试(The National
Certification of Network Engineer,简称NCNE)。
该认证考试及培训实践性强、内容新,与国际最新 *** 技术衔接紧密,实验操作部分设计合理,注重理论与实践的高度结合。
现2005年认证考试与培训报名工作已开始,请踊跃报名,积极参加。考生通过考试,可同时获得信息产业部全国信息化工程师认证考试管理中心颁发的相应级别证书和美国国家通信系统工程师协会的认证证书,成为国内外认可的 *** 技术专业人员,并被加入到国家信息化人才数据库、国际通信系统工程师协会人才库以及中国西安人才网IT人才库。该证书可作为学员出国留学以及奖学金申请的有效证件。
该认证考试为目前我国公开推行的 *** 技术水平认证体系,创立了我国自主认证品牌。
一、报考及培训类别:
1. NCNE一级认证;
2. NCNE二级认证。
二、报名及考试办法:
根据05年度考试安排,采取常年报名、定期培训、统一考试、集中颁证。单位集体和个人自愿报名均可。
国家 *** 技术工程师水平认证考试内容及安排
一
级
认
证 使学员具备设计、实现、维护和管理各种常用小型局域网的技能,并了解相关的初步理论知识。• *** 基础知识
• *** 布线
•OSI参考模型与 *** 协议
• *** 互连设备
•局域网技术
•IP地址的划分与配置
•Windows98操作系统的安装、配置与管理
•Linux操作系统的安装、配置与管理
•在不同操作系统平台(Win98/WinNT/Linux)上实现文件服务与打印服务
•基于不同操作系统平台(Win98/WinNT/Linux)的 *** 接入方案
•其它典型 *** 操作系统的介绍及其同Windows *** 的互连
• *** 安全简介•安装和维护各种常用小型局域网的物理设备;
•配置各种常用小型局域网的TCP/IP参数;
•配置和维护各种常用小型局域网的文件服务器和打印服务器;
•配置PC机和各种常用小型局域网连接到Internrt;
•保证各种常用小型局域网正常运行。
二
级
认
证 使学员具备配置、管理和维护多种常用的、多平台的、包含广域网连接的且功能完善的小型企业网的技能和相关理论知识•通信基础知识
•以太局域网的帧结构与工作原理
•网桥、交换机的原理与使用
•虚拟局域网(VLAN)
•令牌环与FDDI
•ATM ***
•TCP/IP协议与应用服务的实现
•路由器原理与路由协议
•广域网技术
• *** 安全
• *** 监视、管理与排错•安装、配置和维护DHCP服务器、DNS服务器、FTP服务器和WWW服务器
•按照 *** 管理的需求划分IP子网
•管理和维护多种常见的广域网连接
•安装、配置和维护小型防火墙软件
•监视 *** 运行并能排除简单故障
•保证各种常用小型企业网的正常运行。
1、 *** 工程考试共分五个等级,即 *** 管理员、助理 *** 工程师、 *** 工程师、高级 *** 工程师和高级 *** 专家。
2、 *** 工程师课程有计算机与 *** 技术、windows系统管理、数据库基础管理、计算机病毒防治、Linux基础、构造大型企业 *** 、Windows *** 服务管理、Linux *** 服务管理、企业邮件系统解决方案、数据库管理、 *** 安全及解决方案等