XCTF攻防世界_Web进阶区004

XCTF_Web进阶区

ics-06

在这里插入图片描述
(1)打开网址,根据题意点击报表中心(试了一下点击其他的发现都一样)
在这里插入图片描述
(2)发现URL栏有?id=1,使用burp爆破id。
(3)设置浏览器的配置为手动代理配置,burp设置为拦截请求,刷新页面
在这里插入图片描述
(4)发送给Inturder,设置爆破点为id变量
在这里插入图片描述
(5)把爆破变量设为数值
在这里插入图片描述
(6)为了让爆破更快,这里设置多一点线程
在这里插入图片描述
(7)开始攻击,发现id为2333时长度和其他数值不一样(这里不要一个一个找,点击“长”,英文版是“length”会排序)
在这里插入图片描述
(8)回到网址,把id改为2333,发现flag
在这里插入图片描述

warmup

(1)打开网址,是一张滑稽图片,查看网页源代码,发现source.php
在这里插入图片描述(2)进一步访问,又发现一个hint.php
在这里插入图片描述(3)这里提示了flag在这个ffffllllaaaagggg文件中
(4)返回source.php,继续审计代码
在这里插入图片描述(5)参数file满足三个条件,就会包含文件,file可以由自己构造。
条件一:检查file变量是否为空。
条件二:检查file变量是否为字符串。
条件三:通过checkFile函数来检查
(6)由于要构造payload,条件一和二直接满足,直接查看checkFile函数代码:
在这里插入图片描述(7)发现包含四个if语句:
第一个 if 语句对变量进行检验,要求$page为字符串,否则返回 false;
第二个 if 语句判断$page是否存在于$whitelist数组中,存在则返回 true;
第三个 if 语句,截取传进参数中首次出现?之前的部分,判断该部分是否存在于$whitelist数组中,存在则返回 true;
第四个 if 语句,先对构造的 payload 进行 url 解码,再截取传进参数中首次出现?之前的部分,并判断该部分是否存在于$whitelist中,存在则返回 true;

#以上4个if语句,满足一个即可返回true。都未满足则返回false。
(8)这里用第三个if语句构造参数:

?file=source.php?/../../../../ffffllllaaaagggg

第一个?用来传参,第二个?用来满足截取
在这里插入图片描述(9)include
在这里插入图片描述#因为参数有定义路径,就会忽略/前的字符串,直接去找/…/…/…/…/ffffllllaaaagggg这个文件。

NewsCenter

在这里插入图片描述解法一:
(1)打开网址,如上图所示页面。考虑到xss或sql注入,试试sql注入。随便输入123后,使用burp抓包

在这里插入图片描述(2)发现是post方式,直接sqlmap爆破。将这些保存在一个文本文档里,为了方便命名为1.txt。并将该文本放到sqlmap所在目录下。使用命令爆破数据库

sqlmap.py -r 1.txt --dbs

在这里插入图片描述(3)看到一个news,继续使用命令查看news数据库的内容

sqlmap.py -r 1.txt -D news --dump

在这里插入图片描述(4)发现flag

解法二:
(1)尝试构造语句sr’ or '1=1,果然返回了7条新闻。通常使用单引号,1,2等尝试,然后用union联合查询获取信息。union就是两个结果的去重合集,但前提要列数一致。因此构造语句判断数据的列数。

sr' union select 1,2#

(2)没有正确返回结果,再试试:

sr' union select 1,2,3#
//语句中的第一个单引号'用来闭合后台的第一个',前面的sr也可改成其他字符或数字
//语句中的#用来注释掉后台的第二个'

在这里插入图片描述(3)只有1,2,3的时候才正确返回,因此数据的列数为3列。
(4)接下来利用information_schema来获得所有的表名,构造语句:

sr' union select 1,2,table_name from information_schema.tables#
//前面的1,2就是凑列数的

(5)得到一大串的表名,慢慢找,发现最底下有news和secret_table数据库
在这里插入图片描述(6)因为试过了news,没有结果。接下来利用information_schema.columns的结构来获得secret表的信息。我们要得到的信息也就只有列名column_name,也可以再加上column_type来查看数据类型。附上大佬的文章https://www.cnblogs.com/JiangLe/p/5793555.html因此,构造

sr' union select 1,column_type,column_name from information_schema.columns where table_name='secret_table'#

在这里插入图片描述(7)看到了flag的信息,构造语句:

sr' union select 1,2,fl4g from secret_table#

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值