BUUCTF- is_numeric() 和 ==弱比较-绕过waf

第六周

 

目录

WEB

[极客大挑战 2019]BuyFlag

[RoarCTF 2019]Easy Calc

1.绕过waf

 2.绕过黑名单查看文件

3.绕过黑名单 读取文件

Crypto

rsarsa

Windows系统密码

Misc

另外一个世界

FLAG


WEB

[极客大挑战 2019]BuyFlag

查看源码

发现了pay.php

查看一下

给我们条件

发现 is_numeric() 和 ==弱比较

hackbar

post

然后我们查看源代码

发现不能购买

所以我们进行抓包

 发现了cookie:user=0

这可能是进行判断 我们尝试把他改为1

 

 成功了 然后他返回数字的长度太长了 我们只有money的数字长度很长 所以进行改为科学计数法

1e9

得到flag

[RoarCTF 2019]Easy Calc

 查看源代码

 发现里面有一个calc.php的文件

 进行代码审计

有一个黑名单

然后get num

我们在刚刚开始的时候 可以发现 我们只能输入数字 没办法输入字符

所以waf应该对num 进行过滤 我们要让waf 找不到num

1.绕过waf

?num !=? num 中间有一个空格

这样waf就找不到num 但是? num在处理的时候会过滤空格

加上空格

没加

 2.绕过黑名单查看文件

利用scandir()列出目录和文件,var_dump()用于输出

scandir()函数返回指定目录中的文件和目录的数组。
scandir(/)相当于ls /
var_dump()相当于echo

因为过滤了/

所以我们构造 chr(47)

ASCII码对应表chr(9)、chr(10)、chr(13)、chr(34)、chr(39)、chr(46)_大虾.唐的博客-CSDN博客

? num=var_dump(scandir(chr(47)))

 发现

f1agg

3.绕过黑名单 读取文件

利用file_get_contents()读取并输出文件内容

file_get_contents(/xxx.php),读取/xxx.php的代码

所以我们构造

? num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))

我们为什么f1agg也要转换 因为代码中还有一个黑名单 没有展现  是黑名单项目 所以过滤了这个文件

Crypto

rsarsa

套代码

import gmpy2

e = 65537
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
n = p * q
# 密文
C = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

d = gmpy2.invert(e, (p - 1) * (q - 1))
# print(d)
# 求明文
M = pow(C, d, n)  # 快速求幂取模运算
print(M)

Windows系统密码

发现ctf关键词 然后有两个;;所以是两串 然后系统密码 想到md5

开始解密

MD5免费在线解密破解_MD5在线加密-SOMD5

 第一个不行 尝试第二个

 得到flag

Misc

另外一个世界

下载文件放入010

在文件最下面有 二进制 我们把他转为字符串

二进制与字符串互转

 得到flag

FLAG

下载文件 猜测 工具使用过去都没有 就猜测是不是LSB隐写

果然出现pk 是一个压缩包 我们save bin 保存为压缩包后缀

 我们打开压缩包文件 然后搜索ctf

 得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值