文件包含漏洞
文件包含漏洞简介
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时候直接调用此文件,而无须再次编写,这种调用文件的过程称为包含。
程序员为了使代码更加灵活,经常将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
文件包含漏洞分为本地包含(LFI)和远程包含(RFI)。文件包含漏洞在 PHP Web Application中居多,在JSP ASP程序中偏少。
PHP中有四个文件包含的函数
include():找不到被包含的文件时只会产生警告(E_WARNING),脚本将会继续执行;
include_once():与include()类似,唯一的区别是如果该文件中的代码已经被包含,则不会再次包含;
require():找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本;
require_once():- 该函数和require()类似,区别在于若该文件中的代码已经被包含,则不会再次包含。
漏洞产生原因
利用一个例子来展示这个漏洞
先创建一个网页代码inclu ...
RCE漏洞利用练习
命令执行漏洞墨者靶场案例
案例命令注入执行分析https://www.mozhe.cn/bug/detail/12
进入网站,先查看网站的系统,因为不同系统的命令不相同
查看到是Ubuntu,即Linux
输入127.0.0.1| pwd不行,可能是过滤了,每个都去试试
抓包进行分析,发现可以输入了
输入127.0.0.1|ls成功发现key文件
用cat发现并不能查看
其他查看文件的命令:less、head、tail、more
都试试,发现都不行,都是一片空白
然后在网上找到方法,使用输入重定向(最后面有补充)1cat < key_268422068410077.php
这样key就获取到了
代码执行漏洞Pikachu靶场案例
exec “evel”
这个函数就是将输入框的语句当成php执行
输入phpinfo();
通过burpsuite抓包,进行后续修改
更多的常用方法1234567?txt=@eval($_POST['cmd']); 一句话木马?txt=print(__LINE__); 显示文件中的当前行号?txt=prin ...
RCE命令执行漏洞和代码执行漏洞
RCE漏洞
直接用的pikachu对RCE的介绍
命令执行漏洞命令执行
命令执行(Remote Command Execution, RCE)
Web应用的脚本代码在执行命令的时候过滤不严,从而注入一段攻击者能够控制的代码,在服务器上以Web服务的后台权限远程执行恶意指令
成因
代码层过滤不严
系统的漏洞造成命令注入
调用的第三方组件存在代码执行漏洞常见的命令执行函数
PHP:exec、shell_exec、system、passthru、popen、proc_open等
ASP.NET:System.Diagnostics.Start.Process、System.Diagnostics.Start.ProcessStartInfo等
Java:java.lang.runtime.Runtime.getRuntime、java.lang.runtime.Runtime.exec等
常用命令执行函数system函数
该函数会将执行的结果输出并将输出结果的最后一行作为字符串返回,如果执行失败则返回false
是最常使用到的12345<?phphighlight_fil ...
xss-labs练习level1~13
xss-labs环境搭建
在GitHub当中下载靶场环境压缩包https://github.com/do0dl3/xss-labs
level1
第一关当中,看见下面有文字提示,显示payload的长度:4
然后在url当中的test也是长度4,猜测是这里,我们随便改改这个
发现随便输入123456,payload长度就变成6了,所以这里就是payload的位置
在这里写入语句1<script>alert('123')</script>
成功了,点确定就进入level2
level2
这里猜测和level1一样,但是改在输入框当中了
发现语句在引号当中,这样就不能被执行了
需要让它执行,就在前面加">,目的是让value参数结束1"><script>alert('123')</script>
level3
看起来和level2差不多
输入一样的内容发现不行
查看html代码,发现这次value的值是用单引号的
把前面改成单引号试试
发现还是不行,输入的 ...
SSRF服务端请求伪造攻击
SSRF 简介
SSRF(Server-Side Request Forgery,服务端请求伪造),是攻击者让服务端发起构造的指定请求链接造成的漏洞。
由于存在防火墙的防护,导致攻击者无法直接入侵内网;这时攻击者可以以服务器为跳板发起一些网络请求,从而攻击内网的应用及获取内网数据。
SSRF与CSRF的区别
CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的cookie信息伪造用户请求发送至服务器;
SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或者其它服务器。
SSRF 原理
SSRF形成的原因大都是由于服务端提供了从其他服务器或应用中获取数据的功能,但没有对目标地址做出有效的过滤与限制造成的。
比如,一个正常的Web应用,本应该从指定URL获取网页文本内容或加载指定地址的图片,而攻击者利用漏洞伪造服务器端发出请求,从而突破了客户端获取不到数据的限制,如内网资源、服务器本地资源等。
SSRF 漏洞利用手段
对外网、服务 ...
Pikachu-CSRF跨站请求伪造练习
第一关 CSRF(get)
看标题知道这是个get请求的csrf
我们点击提示可以看到受信任的用户名和密码
登录其中一个
我们现在模拟allen修改信息
点击修改个人信息
随便修改一项,我这里修改了邮箱
同时进行抓包
确定是get请求
我们可以对这条get请求做手脚
比如把性别改成女的(666纯纯恶搞)
这个操作在真实案例当中应该是由链接触发的,这只是模拟
第二关 CSRF(post)
看题目知道是post类型的
通过提示登录进去
与上面的方法一样,也是模拟用户修改信息,然后抓包修改
抓到了post包,模拟链接修改这段
再次将这个人改成女的
第三关 CSRF Token
与上面的两个一样,还是先登录受信任的用户
然后修改信息,我这里还是修改邮箱
这里可以看见,在get包当中有token值,是令牌用于鉴别身份的
我们需要盗取token
我们将这个get包放入重发器当中,我们发现token发生了变化,所以我们需要使用新的token,原来那个会失效
我们将新的token复制到get包当中替换,然后修改信息,我这里还是改了boy
可以看见成功了
回到页面可以看见改成b ...
CSRF跨站域请求伪造攻击
CSRF简介
CSRF(Cross Site Request Forgery,跨站域请求伪造),也被称为 “One Click Attack” 或者 Session Riding,通常缩写为 CSRF 或者 XSRF 。
尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS 利用站点内的信任用户,而 CSRF 则通过伪装成来自受信任用户的请求来利用受信任的网站。
CSRF原理
首先是存在CSRF漏洞的网站A,以及存在恶意攻击代码的网站B,还有受网站A信任的用户C
用户C通过浏览器正常访问网站A,
通过验证在浏览器生成cookie信息
用户C在没有登出网站A的情况下,访问网站B
网站B返回给用户一些攻击性代码,并请求访问网站A
这样网站B就在用户不知情的情况下,利用浏览器保存的cookie信息对网站A进行访问请求,导致网站B的恶意代码能够在网站A被信任执行
需要满足两个条件:
登录受信任网站A,并生成cookie
不登出网站A的情况下,访问网站B
CSRF危害
你不能保证你登录了一个网站后,不再打开一个 tab 页面并访问另外的网站。
你不能 ...
Pikachu-XSS跨站脚本攻击练习
概述
概述就直接看看pikachu的说法吧
第一关 反射型xss(get)
尝试输入以下内容1<script>alert("Hello World")</script>
发现有长度限制
所以我们需要使用其他方法
方法一
可以随便输入点东西,然后在url当中插入我们的语句,这样就不受限制了
方法二
第二个方法就是需要使用开发者工具,修改html代码当中的限制
直接修改maxlength的值
然后就可以在输入框当中输入了
第二关 反射型xss(post)
是一个登录界面
pikachu的默认用户名是admin,默认密码是123456
通过前面暴力破解可以得到用户名和密码
这关没有输入框长度限制,我们获取admin的cookie
<script>alert(document.cookie)</script>
第三关 存储型xss
是个评论系统,输入的内容会被保存在下面
我们在评论框当中输入<script>alert("交出你的cookie");alert(document.coo ...
XSS跨站脚本攻击漏洞
XSS介绍什么是跨站脚本攻击
跨站脚本攻击(Cross-site scripting,XSS)是一种常见的网络安全漏洞,攻击者通过在受害网站注入恶意脚本代码,使得其他用户访问该网站时执行这些恶意代码,从而达到攻击的目的。
有什么危害
获取用户信息:(如浏览器信息、ip地址、cookie信息等)
钓鱼:(利用xss漏洞构造出一个登录框,骗取用户账户密码,提示登录过期,模拟一个网站的登录框,将用户名、密码发送到攻击者服务器)
注入木马或广告链接:(有些在主站注入非法网站的链接,对公司的声誉有一定的影响)·
后台增删改网站数据等操作:(配合CSR漏洞,骗取用户点击,利用s模拟浏览器发包)
xss蠕虫(微博蠕虫:只要看过某人的微博就是自动关注某人;贴吧蠕虫:看过某个帖子就是自动回复这个帖子)
XSS分类反射型XXS
反射型XSS,又称非持久型XSS,攻击相对于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,恶意代码并没有保存在目标网站,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本。
特点
即时性 ...
Web漏洞文件上传(2)
解析漏洞解析漏洞解释
解析漏洞就是指服务器应用程序在解析某些精心构造的后缀文件的时候,会将相关的文件解析成网页的脚本,从而导致实现控制网站,同时大部分的解析漏洞都是由应用程序产生的。
IIS解析漏洞IIS5.0/6.0目录解析
在以. asp文件名的文件夹下的任何文件都将作为asp文件执行。
也就是当目录为XX.asp的时候,那么当访问下面的图片的时候,如XX.aps/1.jpg就会被当作ASP执行。
文件解析
如果文件为1.asp;.jpg,由于IIS不解析;后面的内容,使用就会把文件当作1.asp进行解析,同时还存在.asa、.cer、.cdx可以进行解析。
修复建议
限制上传目录的执行权限,不允许执行脚本。
不允许创建目录。
上传的文件进行重命名。
IIS7.0/7.5IIS7.0/IIS7.0Fash-CGI
在Fast-CGI开启的状态下,在类似1.jpg后面加上/1.php,变成/1.jpg/1.php路径会解析成PHP文件。需要进入php.ini里面修改cig.cgi_ pathinfo=1。
...