攻防世界WEB高手进阶区第五周

Ics-04

[题目描述] 工控云管理系统新添加的登录和注册页面存在漏洞,请找出flag。
[题目场景]
在这里插入图片描述

根据题目描述 我们找到登陆页面和注册页面
我们先在注册页面进行注册 然后再转到登陆页面进行登陆
在登陆成功后会提示 “普通用户登录成功,没什么用”
在这里插入图片描述

点击找回密码跳转到找回密码的页面
我们进行抓包
在这里插入图片描述

我们可以看到在找回密码页面存在注入
我们利用sqlmap跑出内容
python sqlmap.py -u “http://220.249.52.133:48079/findpwd.php” --data=“username=1” --dbs --batch
在这里插入图片描述

python sqlmap.py -u “http://220.249.52.133:48079/findpwd.php” --data=“username=1” -D cetc004 --tables --batch
在这里插入图片描述

python sqlmap.py -u “http://220.249.52.133:48079/findpwd.php” --data=“username=1” -D cetc004 -T user --columns --batch
在这里插入图片描述

获取用户名
python sqlmap.py -u “http://220.249.52.133:30020/findpwd.php” --data=“username=1” -D cetc004 -T user -C username --dump
在这里插入图片描述

注:有两个c3tlwDmIn23是因为原本里面只存在一个c3tlwDmIn23,在第一遍做题的时候重新对它进行了注册以此来修改密码进行登陆

因为数据库中原本就存在c3tlwDmIn23,所以如果这个账号登陆成功,我们可能会获得flag
发现注册页面可以再次注册c3tlwDmIn23这个账号,成功重置密码,登入得到flag
在这里插入图片描述

Ics-05

[题目描述] 其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统
[题目场景]
在这里插入图片描述

根据题目我们查看设备维护中心
在这里插入图片描述

再点击云平台设备维护中心
在这里插入图片描述

我们发现出现了page这个get参数,联想到可能存在文件包含读源码的漏洞,尝试读取index.php的页面源码,通过php内置协议直接读取代码
/index.php?page=php://filter/read=convert.base64-encode/resource=index.php
LFI漏洞的黑盒判断方法:
单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞。
此处,因为源码中有提示?page=index,所以读一下index.php中的源码
在这里插入图片描述

我们看到的是加密后的密文,我们对它进行解密
通过代码审计,我们可以看到这段代码
在这里插入图片描述

preg_replace函数:
函数作用:搜索subject中匹配pattern的部分, 以replacement进行替换。
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
$replacement: 用于替换的字符串或字符串数组。
$subject: 要搜索替换的目标字符串或字符串数组。

伪造XFF头来登入系统,同时利用preg_replace函数的漏洞
如果pat和sub有相同的部分,rep的代码就会执行
当pre_replace的参数pattern输入/e的时候 ,参数replacement的代码当作PHP代码执行
于是构造payload
/index.php?pat=/test/e&rep=system(“ls”)&sub=test
使用system(“ls”)尝试获取文件目录
根据代码可知 我们将XFF改为127.0.0.1
在这里插入图片描述

使用cd进入目标文件
system(“cd+s3chahahaDir+%26%26+ls”)
为了避免编码问题,此处不能使用空格隔开,而是使用+,%26即&,意思是当前面命令执行成功时,继续执行后面的命令。
在这里插入图片描述
在这里插入图片描述

最后用cat命令获取flag.php中的文件
在这里插入图片描述

FlatScience

[题目描述]暂无
[题目场景]
在这里插入图片描述

日常扫描后台
在这里插入图片描述

发现有robots.txt我们对其进行访问
在这里插入图片描述

接下来依次查看 /login.php 和 /admin.php
会发现在/admin.php页面中 只有ID:admin 无论输入什么都会显示
在这里插入图片描述

再到/login.php页面 输入ID:admin’ 发现存在注入
在这里插入图片描述

可以看到是sqlite数据库
我们对源代码进行查看 可以发现
在这里插入图片描述

把url改为 login.php?debug 进行尝试
可以看到 出现了php源代码
在这里插入图片描述

进行代码审计
发现了SQL语句,我们进行SQL注入
查询语句为 'union select name,sql from sqlite_maste - -
用burp进行抓包
在这里插入图片描述

我们可以看到
name=
CREATE TABLE Users(
id int primary key,
name varchar(255),
password varchar(255),
hint varchar(255)
)
构造查询密码的SQL:usr=%27 UNION SELECT id, password from Users --&pw=chybeta
构造查询用户的SQL:usr=%27 UNION SELECT id, name from Users --&pw=chybeta
构造查询隐藏线索的SQL:usr=%27 UNION SELECT id, hint from Users --&pw=chybeta
在这里插入图片描述

name=+3fab54a50e770d830c0416df817567662a9dc85c;
在这里插入图片描述

name=+admin
在这里插入图片描述

name=+my+fav+word+in+my+fav+paper%3F%21;
综上可得
id:admin
password:3fab54a50e770d830c0416df817567662a9dc85c
hint:my+fav+word+in+my+fav+paper%3F%2
密码是一个密文,我们用解密工具进行解密
在这里插入图片描述

在php源码中 password=$pass+Salz!
在这里插入图片描述

所以password=ThinJerboa
在/admin.php页面输入密码得到flag
在这里插入图片描述

Cat

[题目描述]抓住那只猫
[题目场景]
在这里插入图片描述

先尝试输入本网站的域名:220.249.52.133
在这里插入图片描述

再尝试所给的例子:loli.club 发现没有反应
继续尝试输入127.0.0.1 返回
在这里插入图片描述

输入的命令被执行了ping命令并返回,由此我们可以想到用命令注入。

在这里插入图片描述

尝试输入127.0.0.1 | ls
在这里插入图片描述

返回了Invalid URL 行不通 ,但我们可以发现这里是get请求的方式,在URL传参处?url我们尝试传入url编码%52 会发现传递之后由?url=%52变为了 ?url=R ,所以可以传递url编码,系统会接收并进行解析,于是我们传递%80会出现报错。因为url编码使用的是16进制,80也就是128,ASCII码是从0-127,所以这个时候会报错。
在这里插入图片描述

返回报错信息 可以看到是一个html网页的形式 我们用浏览器打开这个页面
在这里插入图片描述

我们可以看出这里使用的是Python站点和Django框架 ,以及绝对路径是/opt/api
看了别人的wp 我知道了在比赛的时候有个提示 RTFM of php cURL
从这里入手
在这里插入图片描述

所以根据Django的目录,我们使用@进行文件传递,对文件进行读取之后还会把内容传给url参数
在这里插入图片描述

查找cat、ctf、database等关键词,我们可以发现数据库
在这里插入图片描述

继续查询 ?url=@/opt/api/database.sqlite3 通过查找ctf获得flag
在这里插入图片描述

Bug

[题目描述]暂无
[题目场景]
在这里插入图片描述

首先我们进行注册,username最先开始想到的是admin,但是当输入完信息之后会弹出
在这里插入图片描述

我们大概知道 这道题应该需要登陆admin账号来寻找flag
我们先随意注册一个
登陆成功以后 我们会看到这样的一个页面
在这里插入图片描述

点击Manage会弹出

在这里插入图片描述

所以更加坚定了我们要登陆admin这个账号的想法
在初始页面,我们可以看到有一个Findpwd,我们可以只需要知道用户名、生日、地址就可以更改密码。
我们可以通过登陆自己设定的账号,通过抓包,讲用户名改为admin,密码改成123,来实现获得登陆admin账号的权限。
在这里插入图片描述

这样 我们就能够登陆admin账号了,但是点击Manage弹出了
在这里插入图片描述

IP不对,那我们就设置成本机访问,设置成本机的IP :127.0.0.1
在这里插入图片描述

可以看到有一个提示,看到filemanage猜到可能会是文件上传,所以我们先让do=upload试试看

在这里插入图片描述

果然是文件上传,但是上传的内容是什么呢
尝试上传php文件结果弹出
在这里插入图片描述

参考别人的wp发现是文件内容绕过
内容写成 < script language=‘php’>任意< /script> 并且把文件改为.jpg的格式上传
进行抓包,抓到包以后把文件的后缀名改为.php5/php4进行绕过,即可得到flag

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值