web安全

Web安全之XSS

匆匆过客 提交于 2020-01-20 12:31:36
一.什么是XSS 1.XSS攻击即为(Cross Site Scripting), 中文为跨站脚本(但实际上并不是所有的XSS都需要跨站)。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。 2.XSS类型: (1)反射型XSS(非持久型XSS):发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器解析后响应,在响应内容中出现这段XSS代码。最后浏览器解析执行。(例如: http://www.foo.com/xss/a1.php?x=<script>alert(1)</script> ) (2)存储型XSS(持久型XSS):提交的XSS会存储在服务端(不管是数据库、内存还是文件系统等),下次请求目标页面时不用再提交XSS代码。(例如:留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,留言的内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当作正常的HTML与JS解析执行,于是就出发了XSS攻击。) (3)DOM XSS:此时并不需要服务器解析响应的直接参与,触发XSS靠的就是浏览器的DOM解析。可以认为完全是客户端的事情。(例如:http://www.foo.com/xssme/html#alert(1)

web安全原理-文件包含漏洞

北城余情 提交于 2020-01-20 02:30:09
前言 起来吃完早饭就开始刷攻防世界的题,一个简单的文件包含题我竟然都做不出来我服了 拿出买的书开始从头学习总结文件包含漏洞! 一、文件包含漏洞 文件包含漏洞 文件包含函数的参数没有经过过滤或者严格的定义,并且参数可以被用户控制,这样就可能包含非预期文件。如果文件中存在恶意代码,无论文件是什么类型,文件内的恶意代码都会被解析并执行。 文件包含漏洞肯能会造成服务器网页被篡改、网站被挂马、服务器被远程控制、被安装后门等危害。 常见的文件包含函数: 1.include() 包含并运行制定文件。在出错时产生警告(E_WARNING),基本会继续运行。 2.include_once() 在脚本执行期间包含并运行制定文件。与include区别:检查是否被包含过,如果是则不会再次包含。 3.require()包含并运行指定文件。require在出错时产生E_COMPLE_ERROR几倍错误,脚本中止运行 4.require_once() 基本完全与require相同 与require区别:检查是否被包含过,如果是则不会再次包含。 漏洞示例代码: <?php $filename = $_GET['filename']; include($filename); ?> 以上代码,对$_GET[‘filename’]参数没有经过严格的过滤,直接带入了include()函数,攻击者可以修改$_GET[

web安全之xss漏洞02_中篇

﹥>﹥吖頭↗ 提交于 2020-01-19 12:11:32
知识导航 认识储存型和DOM型xss xss获取cookie 1. 认识储存型和DOM型xss 1.1 存储型 存储型XSS漏洞跟反射型形成的原因一样。不同的是存储型XSS下攻击者可以将脚本,注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称“永久型”XSS。 还是到我们的pikachu平台上来演示。 还是开始测试是否存在xss漏洞 可见后台还是我们输入的东西貌似是原封不动的返回过来了 我们这里尝试一下弹框 果然,但是它的效果虽然是和反射型的相同。但危害却是更大。反射型就是一个一次性的刷新页面之后就没有了。而这里的这段js却是保留进了数据库。也就是说每当打开这个页面。这段js就会被返回来 1.2 DOM型 如果你对DOM不理解,这里你就可以简单的认为。在前端中我们可以利用DOM操作获取页面上的所有东西的操作权 看案例,到我们的pikachu平台下。还是先进行测试 查看源码 可发现这里虽然没有把我们输入的东西直接返回来。但是它也只是换了种方式。它把我们的input的value值直接放入了a链接中。我们很容易可以想到利用闭合。 按照网页源码进行闭合 源码 <a href='"+str+"'>what do you see?</a>"; 闭合写法 'onclick="alert('aaa')";> 前单引号闭合href属性,同时加上我们的脚本还是以弹框为例

web安全测试排查

拟墨画扇 提交于 2020-01-19 01:44:26
漏洞排查思路: 1.上传漏洞 如果看到:选择你要上传的文件 [重新上传]或者出现“请登陆后使用”,80%就有漏洞了! 有时上传不一定会成功,这是因为Cookies不一样.我们就要用WSockExpert取得Cookies.再用DOMAIN、中国菜刀上传.  2.注入漏洞 字符过滤不严造成的 3.暴库:把二级目录中间的/换成%5c    4.'or'='or'这是一个可以连接SQL的语名句.可以直接进入后台。 我收集了一下。类似的还有:  'or''='  " or "a"="a   ') or ('a'='a   ") or ("a"="a   or 1=1--  ' or 'a'='a 5.社会工程学。这个我们都知道吧。就是猜解。   6.写入ASP格式数据库。就是一句话木马〈%execute request("value")%〉 (数据库必需得是ASP或ASA的后缀)    7.源码利用:一些网站用的都是网上下载的源码.有的站长很懒.什么也不改. 比如:默认数据库,默认后台地址,默认管理员帐号密码等 8.默认数据库/webshell路径利用:这样的网站很多/利人别人的WEBSHELL. /Databackup/dvbbs7.MDB /bbs/Databackup/dvbbs7.MDB /bbs/Data/dvbbs7.MDB /data/dvbbs7.mdb /bbs/diy

spring security之web应用安全

我只是一个虾纸丫 提交于 2020-01-17 19:46:04
一、什么是web应用安全,为了安全我们要做哪些事情? 保护web资源不受侵害(资源:用户信息、用户财产、web数据信息等) 对访问者的认证、授权,指定的用户才可以访问资源 访问者的信息及操作得到保护(xss csrf sql注入等) 开发中我们需要注意的项: 1. 【高危】网络关键数据传输加密 1. 【高危】站点使用https方式部署 2. 【高危】文件传输时,过滤与业务无关的文件类型 3. 【高危】接口开发,应预防泄露敏感数据 4. 【高危】预防url中带url跳转参数 5. 【中危】预防CSRF攻击 6. 【中危】预防短信恶意重发 7. 【中危】预防暴力破解图片验证码 8. 【低危】通过httponly预防xss盗取cookie信息 9. 【低危】设置http协议安全的报文头属性 ...... 二、为什么要聊spring security? spring security在很多安全防护上很容易实现 理解spring security的抽象有助于养成面向对象思维 可以为理解spring security oauth2做铺垫 三、先搞清楚两大概念:认证、授权 Application security boils down to two more or less independent problems: authentication (who are you?) and

WEB安全测试实战训练

[亡魂溺海] 提交于 2020-01-17 03:05:14
WEB安全测试实战训练课程: 一、常见WEB安全漏洞 1、黑客技术分析 2、常用黑客工具介绍 3、WEB常见攻击方式 二、WEB安全漏洞检测 1、HTTP安全测试 2、URL查询字符串篡改、POST数据篡改、Cookie篡改、HTTP头篡改 3、HTTP安全漏洞检查、常用工具、案例分析 4、跨站脚本攻击(XSS)方法、XSS原理剖析 5、XSS攻防演练、案例分析 6、XSS漏洞检查方法、工具、代码审查 7、XSS造成的安全后果、如何预防XSS 8、隐藏表单字段漏洞、案例分析 9、隐藏表单字段漏洞检查方法、工具、代码审查 10、DoS攻击、DoS原理 11、DoS攻防演练、案例分析 12、DoS攻击检查 13、如何预防DoS攻击 14、SQL注入攻击方法、SQL注入原理 15、SQL注入攻防演练、案例分析 16、SQL注入检查方法、工具、代码审查 17、SQL注入造成的安全后果、如何预防SQL注入 18、命令注入漏洞、攻击方法、案例分析 19、通过代码审查检测命令注入漏洞 20、XML安全漏洞 21、XPath注入、XML炸弹、XXE攻击、案例分析 22、信息泄漏 23、Forceful browsing、暴露过多的信息、案例分析 24、如何避免信息泄漏问题、代码审查 三、软件安全研发过程 1、软件安全研发过程、安全建模、安全建模工具的应用 2、编写安全的代码 3、软件安全测试方法

【web安全深度剖析】笔记——上传漏洞

折月煮酒 提交于 2020-01-16 22:47:45
IIS6.0解析漏洞 当文件夹名命名为XX.asa或XX.asp时,文件夹中的所有文件都会被当做asp文件来执行 当文件命名为*.asp;1.jpg时,此文件会被当做asp文件来执行 WebDav漏洞:开启webdav后,可扩展move、copy、delete等HTTP方法,此时即可put一个a.txt写入一句话木马,并通过copy或move改名为xx.asp,这样即可轻松上传一个webshell。同样可以使用delete方法删除任意文件。 APACHE漏洞 Apache在解析文件时有一个原则:当碰到不认识的扩展名时,将会从后向前解析,直到碰为止,如果都不认识,则会暴露其源代码。比如:1.php.rar ,apache不认识rar后缀,就会解析成php文件。 PHP CGI解析漏洞 当在正常网页www.xx.com/1.jpg后面加上/xx.php时(xx.php文件不需要存在),1.jpg就会被当成PHP脚本来运行。 因为PHP的配置文件中cgi.if选项默认开启向前递归解析,当xx.php文件不存在时,就解析上一级文件,造成解析漏洞。 中国菜刀与一句话木马 往目标网站中加入一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录 各语言的一句话代码 asp: <%eval request ("pass")%> aspx: <%@ Page

web安全 sql注入

家住魔仙堡 提交于 2020-01-12 21:39:37
一、原理 SQL注入的本质就是把用户的输入参数,未加过滤的当作sql被数据库执行。 二、分类 1、常见的sql注入按照参数类型可分为两种: 数字型和字符型。 当发生注入点的参数为整数时,比如 ID,num,page等,这种形式的就属于数字型注入漏洞。同样,当注入点是字符串时,则称为字符型注入,字符型注入需要引号来闭合。 2、也可以根据数据库返回的结果,分为回显注入、报错注入、盲注。 回显注入:可以直接在存在注入点的当前页面中获取返回结果。 报错注入:程序将数据库的返回错误信息直接显示在页面中,虽然没有返回数据库的查询结果,但是可以构造一些报错语句从错误信息中获取想要的结果。 盲注:程序后端屏蔽了数据库的错误信息,没有直接显示结果也没有报错信息,只能通过数据库的逻辑和延时函数来判断注入的结果。根据表现形式的不同,盲注又分为based boolean和based time两种类型。 3、按照注入位置及方式不同分为: post注入,get注入,cookie注入,盲注,延时注入,搜索注入,base64注入,无论此种分类如何多,都可以归纳为以上两种形式。 来源: https://www.cnblogs.com/shwang/p/12184727.html

一个WEB***的处理过程

耗尽温柔 提交于 2020-01-12 21:16:42
一.开始 大概是在9月28日的下午3点的样子,公司运营部告诉我公司所有的业务瘫痪了,所有的业务都是在等待中, 包括APP服务器,官网,电商平台,线下运营支持平台等10几个网站和服务,接到这样的任务,对于非运维 人员,做为后端人员的我脑子里一片空白,因为你知道公司希望的是给你报告下一秒,问题就解决了,这对 我是挑战也是机遇,挑战的是没有处理过,害怕处理不好,怕公司出大损失,话说算到我们头上也说不定, 机遇的是正好有机会可以锻炼一下自己,看自己有几斤几两,言归正传,看下面的处理。 二.处理 1.现象 访问任何服务就是502,一直服务无法访问 2.处理过程 处理1.通过top命令发现CPU,内存一切正常 处理2.通过iftop命令发现带宽输入一切正常 处理3.通过pstree -a 发现PHP-FPM线程有些多,好吧,那就暴力一点,直接KILL掉一些,发现KILL是没有用的,好吧,把初始线程由原来的35扩大到100,重启,访问WEB服务,终于可以访问,但是慢得像蜗牛似的,但是只是可以说明一个问题,程序服务器是可以跑的,好吧,最近一直没处理过大服务,为什么慢得不要不要的,我想到我们阿里云是不是有什么鬼,好吧,那就是上阿里云看一下 处理4.查看阿里云安全提醒,没有异常 处理5.查看阿里云RTS概况,发现数据库CPU异常,占用率达到100%,我去,这还了得,终于找到原因

web安全之token

允我心安 提交于 2020-01-11 03:18:30
参考:http://blog.csdn.net/sum_rain/article/details/37085771 Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方: 1)防止表单重复提交、 2)anti csrf攻击(跨站点请求伪造)。 两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。 然后,如果应用于“anti csrf攻击”,则服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。 不过,如果应用于“防止表单重复提交”,服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。 上面的session应用相对安全,但也叫繁琐,同时当多页面多请求时,必须采用多Token同时生成的方法,这样占用更多资源,执行效率会降低。因此