摘要:安全基础常见的安全攻击手段有很多,比如注入,,,头攻击,攻击,重定向攻击,上传文件攻击等,其中大多数都可以通过三种方法过滤代理转义实体化来解决。个人趋向于安全狗,同时安装服务器安全狗和网站安全狗可以有效地防护攻击。
web安全基础
常见的web安全攻击手段有很多,比如SQL注入,XSS,CSRF,HTTP头攻击,cookie攻击,重定向攻击,上传文件攻击等,其中大多数都可以通过三种方法——过滤代理转义(实体化)来解决。
SQL注入 SQL注入方法?使用工具--SQLmap SQL注入之SQLmap入门 - FreeBuf.COM | 关注黑客与极客
两种类型:常规注入和宽字节注入
常规注入方式,通常没有任何过滤,直接把参数存放到了SQL语句当中
宽字节注入:
怎么防止SQL注入?将PHP的内置mysql_real_escape_string()函数用作任何用户输入的包装器。
这个函数对字符串中的字符进行转义,使字符串不可能传递撇号等特殊字符,并让mysql根据特殊字符进行操作。
根本上防止SQL注入的方法,就是参数化查询或者做词法分析。
虽然SQL注入漏洞非常多,但是防范起来却挺简单的,下面介绍几个过滤函数和类:
魔术引号转义(gdc,runtime,sybase)
过滤函数和类
addslashes(在指定的预定义字符前添加反斜杠。这些字符是单引号双引号反斜线null)
mysql_real_escape_string
intval
PDO 预处理
XSS攻击 XSS攻击方法?XSS,跨站式脚本攻击,它指的是恶意攻击者往 Web 页面里插入恶意 html 代码,当用户浏览该页之时,嵌入其中 Web 里面的 html 代码会被执行,从而达到恶意的特殊目的。
XSS属于被动式的攻击。所以往往不好防止。
XSS漏洞挖掘方法
数据接收位置,检查 _POST、$_COOKIE是否经过转义。
常见的反射型XSS搜索这种类似位置发现次数较多。
而存储型在文章,评论出现比较多。
XSS攻击分为三种:反射型,存储型,dom型
反射型,危害小,一般
反射型XSS原理:就是通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特定的代码参数会被HTML解析,执行,如此就可以获取用户的COOIKE,进而盗号登陆。比如hack甲构造好修改密码的URL并把密码修改成123,但是修改密码只有在登陆方乙才能修改,乙在登陆的情况下点击甲构造好的URL将直接在不知情的情况下修改密码。
特点是:非持久化,必须用户点击带有特定参数的链接才能引起。
存储型,危害大,影响时间长
存储型XSS原理,假设你打开了一篇正常的文章页面,下面有评论功能。这个时候你去评论了一下,在文本框中输入了一些JavaScript代码,提交之后,你刷新这个页面后发现刚刚提交的代码又被原封不动的返回来并且执行了。
这个时候你会想,我要写一段 JavaScript 代码获取 cookie 信息,然后通过ajax发送到自己的服务器去。构造好代码后你把链接发给其他的朋友,或者网站的管理员,他们打开 JavaScript 代码就执行了,你服务器就接收到了sessionid,你就可以拿到他的用户权限了。
dom型,特殊的一种
dom型 XSS 是因为 JavaScript 执行了dom 操作,所造成的 XSS 漏洞,具体如下图。可以看到虽然经过 html 转义了,但是这块代码在返回到 html 中,又被 JavaScript 作为 dom 元素操作。那当我输入
?name=
的时候依然会存在 XSS 漏洞。
怎么防止XSS攻击?过滤:strip_tags()去掉所有HTML,XML,PHP的标签,
HTML内容实体化转义:有两种方式:在入口和出口,我建议是在入口处转义,防止出口位置取出来的时候忘记转义,如果已经在入口转义了,出口位置就不用再次转义。htmlspecialchars()等函数。
框架层面:XSS注入我也不怕不怕啦——PHP从框架层面屏蔽XSS的思考和实践 - 推酷
httpOnly 即使存在xss漏洞,可以把危害大大降低。
比较主流的XSS防止手段主要有两种,
一种是在用户输入时将异常关键字过滤,
另一种是在页面渲染时将Html网页实体化转义。
但是,如果我们必须要输入所谓“敏感字符”的时候,由怎么办?怎么处理这种数据和业务数据有冲突的情况?
第二种Html内容实体化转义的方式,又太依赖开发习惯,不靠谱。
那么还有一种方法就是在框架层面,根据实际情况具体分析,XSS注入我也不怕不怕啦——PHP从框架层面屏蔽XSS的思考和实践 - 推酷
CSRF攻击 CSRF攻击方法?CSRF跨站式请求伪造。CSRF在用户不知情的情况下,冒充用户发起请求,完成一些违背用户意愿的请求(如恶意发帖,删帖,改密码,发邮件)。
与XSS跨站式脚本攻击不同的是,XSS是被动的,更像是一个陷阱,而CSRF则是主动的,跨域伪装成用户发送请求来达到目的。通常来说CSRF是基于XSS实现的,但是XSS更偏向于方法论,而CSRF更偏向于一种形式。
比如...
我们来看下面的一段代码,这个表单当被访问到的时候,用户就退出了登录。假设有一个转账的表单,只需要填写对方的用户名,和金额就可以,那如果我提前把 URL 构造好,发给受害者,当点击后,钱就被转走了。
或者我把这个 URL 放到我的网页中,通过
怎么防止CSRF攻击?图片验证码
token验证(默认POST请求的时候都要带上token)
referer信息验证(判断HTTP的请求源是否是同源的)
如果三个判断都没有,那么就存在了 CSRF 漏洞,CSRF 不仅限于 GET 请求, POST 请求同样存在。
图片验证码,这个想必大家都知道,但是用户体验并不好,我们可以看下面的一些处理方法。
token验证
token验证方法如下,每次访问表单页的时候,生成一个不可预测的token存放在服务器session中,另外一份放页面中,提交表单的时候需要把这个token带过去,接收表单的时候先验证一下token是否合法。
Referer信息验证
大多数情况下,浏览器访问一个地址,其中header头里面会包含Referer信息,里面存储了请求是从哪里发起的。
如果HTTP头里包含有Referer的时候,我们可以区分请求是同域下还是跨站发起的,所以我们也可以通过判断有问题的请求是否是同域下发起的来防御 CSRF 攻击。
Referer 验证的时候有几点需要注意,如果判断Referer是否包含 *.XXX.com,如果有子域名有漏洞,会存在绕过的可能。
如果判断的条件的是Referer中是否包含字符 ‘xxx.com’ 那攻击者在他目录中建立一个 xxx.com 文件夹同样存在绕过的可能。如果可以最合适的判断是,直接判断是否等于当前域名。
DDOS攻击 什么是DDOS攻击?DDOS攻击全称为:分布式拒绝服务攻击,是指击者利用大量“肉鸡”对攻击目标发动大量的正常或非正常请求、耗尽目标主机资源或网络资源,从而使被攻击的主机不能为合法用户提供服务。
DDOS攻击的本质是:利用木桶原理,寻找利用系统应用的瓶颈;阻塞和耗尽;当前问题:用户的带宽小于攻击的规模,噪声访问带宽成为木桶的短板。
其实cc攻击也属于ddos攻击的一种。
对于这类的攻击,用软硬件结合的方式来防御是最有效的。多带带 防御都是蛮吃力的
什么是CC攻击?CC攻击时一种以网站页面为攻击目标的应用层攻击,攻击时选择服务器开放的页面中需要较多资源开销的应用。例如占用大量CPU资源进行运算或需要大量访问数据库的应用。主要是以.asp、.jsp、.php、.cgi等结尾的页面资源。
在CC防护上,经济实力好的可以选择购买DDOS高防设备,因为CC攻击也属于DDOS攻击的一种。经济实力一般,可以考虑安装防护软件。安全狗或者360网站卫士。个人趋向于安全狗,同时安装服务器安全狗和网站安全狗可以有效地防护CC攻击。可以有效地防止服务器因为受到CC攻击而产生CPU使用率100%的情况出现。
什么是CC攻击?
CC攻击来的IP都是真实的,分散的;
CC攻击的数据包都是正常的数据包;
CC攻击的请求,全都是有效的请求,无法拒绝的请求;
因为cc攻击的是网页,服务器什么都可以连接,ping也没问题,但是网页就是访问不;
但是iis一开服务器一会就死,而且被攻击后就老丢包。不知道是不是cc攻击,syn 攻击频率才78ack攻击频率663.
DDOS攻击和CC攻击的区别?CC攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些。这种攻击你见不到真实源IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。最让站长们忧虑的是这种攻击技术含量低,利用更换IP代理工具和一些IP代理一个初、中级的电脑水平的用户就能够实施攻击。因此,大家有必要了解CC攻击的原理及如果发现CC攻击和对其的防范措施。
http://baike.baidu.com/item/c...
代码安全性检查软件RIPS
它最大的亮点在于调用了 PHP 内置解析器接口token_get_all,
并且使用Parser做了语法分析,实现了跨文件的变量及函数追踪,扫描结果中非常直观地展示了漏洞形成及变量传递过程,误报率非常低。
RIPS 能够发现 SQL 注入、XSS 跨站、文件包含、代码执行、文件读取等多种漏洞,支持多种样式的代码高亮。比较有意思的是,它还支持自动生成漏洞利用。
安装方法
下载地址:https://jaist.dl.sourceforge....
解压到任意一个PHP的运行目录
在浏览器输入对应网址,可以通过下图看到有一个path 在里面填写你要分析的项目文件路径,点击 scan.
seay源代码审计系统
傻瓜化的自动审计 。
支持php代码调试 。
函数/变量定位 。
生成审计报告。
自定义审计规则 。
mysql数据库管理 。
黑盒敏感信息泄露一键审计 。
支持正则匹配调试 。
编辑保存文件 。
POST数据包提交 。
常规漏洞的防范方法 taint PHP安全拓展Taint 可以用来检测隐藏的 XSS code, SQL 注入, Shell注入等漏洞,并且这些漏洞如果要用静态分析工具去排查, 将会非常困难, 我们来看下面这张图:
安装方法
下载 taint: http://pecl.php.net/package/t...
配置
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install
更加详细的可以参考:http://www.cnblogs.com/linzhe...
应用场景
开发团队要求每个人都做到非常的安全比较难,但是把taint安装在开发环境,特别适合,一看到 warning 信息一般都回去改。
ngx_lua_waf功能介绍
防止 sql 注入,本地包含,部分溢出,fuzzing 测试,xss,SSRF 等 web攻击。
防止 svn /备份之类文件泄漏。
防止 ApacheBench 之类压力测试工具的攻击。
屏蔽常见的扫描黑客工具,扫描器。
屏蔽异常的网络请求。
屏蔽图片附件类目录 php 执行权限。
防止 webshell 上传。
安装方法
安装依赖: luajit 、ngx_devel_kit、nginx_lua_module
安装nginx、ngx_lua_waf
在nginx.conf里的 http 添加配置
详细安装文档
效果图
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25873.html
摘要:黑体本系列讲解安全所需要的和黑体安全基础我的第一个网页黑体安全基础初识黑体安全基础初识标签黑体安全基础文件夹管理网站黑体安全基础模块化黑体安全基础嵌套列表黑体安全基础标签拓展和属性的使用黑体安全基础嵌套本系列讲解WEB安全所需要的HTML和CSS #WEB安全基础 : HTML/CSS | 0x0 我的第一个网页 #WEB安全基础 : HTML/CSS | 0x1初识CSS #WEB安全基...
摘要:安全基础介绍本意是网,这里多指万维网,是由许多互相连接的超文本系统组成的,通过互联网访问。刷新后可以看到浏览器发送了很多请求。同理可以查看和等各种文件格式。Web安全基础 00 Web介绍 00-00 Web本意是网,这里多指万维网(World Wide Web),是由许多互相连接的超文本系统组成的,通过互联网访问。 Web是非常广泛的互联网应用,每天都有数以亿万计的...
摘要:二应用系统开发完成后,需要对应用进行全面的测试,其测试方法与其他系统的测试既有相同之处,又有不同之处。测试手段基本相同应用系统的测试一样会采用人工测试工具测试评估等手段。 Web应用测试是软件评测师必考的知识点,每年在上午场和下午场都会出题,Web应用是一类特殊的软件,Web应用系统的开发同样要经过需求分析、设计、编码、实...
摘要:黑体安全基础系列,本系列采用第二人称以免你不知道我在对着你说话,以朋友的视角和你交流的中文名叫做超文本标记语言,叫做层叠样式表用设计你的第一个网页,你需要做的是用你的眼睛看,用你的手敲。#WEB安全基础:HTML/CSS系列,本系列采用第二人称以免你不知道我在对着你说话,以朋友的视角和你交流 HTML的中文名叫做超文本标记语言,CSS叫做层叠样式表 用HTML设计你的第一个网页,你需要做的...
阅读 1505·2021-09-22 15:35
阅读 1985·2021-09-14 18:04
阅读 858·2019-08-30 15:55
阅读 2434·2019-08-30 15:53
阅读 2653·2019-08-30 12:45
阅读 1170·2019-08-29 17:01
阅读 2556·2019-08-29 15:30
阅读 3490·2019-08-29 15:09