[BJDCTF 2020]easy_md5、[HNCTF 2022 Week1]Interesting_include、[GDOUCTF 2023]泄露的伪装

目录

[BJDCTF 2020]easy_md5

ffifdyop

[SWPUCTF 2021 新生赛]crypto8

[HNCTF 2022 Week1]Interesting_include

php://filter协议

[GDOUCTF 2023]泄露的伪装


[BJDCTF 2020]easy_md5

尝试输入一个1,发现输入的内容会通过get传递但是没有其他回显

观察一下响应头,可以看到Hint,即后端处理的SQL语句:

select * from 'admin' where password=md5($pass,true)

//md5函数(string,raw)用法:

  string:字符串,必选参数

  raw:可选参数,通过post传递
       True    //原始16字符二进制数
       False   //默认32字符十六进制数

什么是hint?

hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。

ffifdyop

nssctf web_[nctf 2018]签到题-CSDN博客

sql查询语句目的是     passdword=传递的值

在sql语句中 or 左右一边为true则语句都为true(或逻辑)

这也是or 1 = 1 的由来,所以在这里要尝试构造带or的参数

or 对应的16进制:276f7227

ffifdyop字符串被 md5 哈希了之后会变成276f7227 36c95d99e921722cf9ed621c

字符串前几位刚好是 ‘ or ‘6,并且 Mysql 又会把 hex 转成 ascii 解释,因此拼接之后的形式是

select * from ‘admin’ where password=''or' 6xxxxx'
//xxxxx指代任意字符

此处raw参数是True,意为返回原始16字符二进制格式。

将ffifdyop传入,得到新环境

查看源代码,发现GET传参a!=b,但是它们的MD5值相等,且此处为(==)弱比较类型

原理见[SWPUCTF 2021 新生赛]jicao、easy_md5-CSDN博客

(1)用数组绕过 

 (2)用科学计数法0e绕过

又见一个新环境,POST传参了param1!=param2 但是它们的MD5值相等,且此处为(===)强比较类型,使用数组绕过

[SWPUCTF 2021 新生赛]crypto8

下载附件,查看资料知其为UUencode编码

[HNCTF 2022 Week1]Interesting_include

POST传参filter,包含在flag.php文件里

正则过滤了 flag ,但是没有flag又会返回错误

php://filter协议

于是使用php://filter协议,读取源代码并进行base64编码输出。

php://filter/convert.base64-encode/resource=文件路径

构造payload:

?filter=php://filter/convert.base64-encode/resource=flag.php

base64解码得到flag

[GDOUCTF 2023]泄露的伪装

使用dirsearch扫描,发现状态码为200的/www.rar目录,url下载压缩包

访问路径/orzorz.php得到新环境,GET传参cxk

error_reporting(0);:这行代码设置错误报告级别为0,意味着在运行时不会显示任何错误信息。通常用于生产环境中,以防止敏感信息泄露给用户。

file_get_contents($cxk)函数:读取 $cxk 变量中指定的 URL 或文件的内容。

这就需要传入一个文件,如果文件内容等于"ctrl",则返回flag

利用date://协议构造payload:

?cxk=data://text/plain,ctrl

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值