[BJDCTF2020]Easy MD51

首先打开靶机,只有一个输入框

用bp查看一下

这里有个提示,根据提示知道,要在输入框中传入字符,经过MD5加密之后,构成SQL注入的语句,也就是 ' ' or True

因为mysql在进行布尔型判断时,以数字开头的字符串会被转换成整型,所以只要MD5之后的字符串是 ‘ ’ or数字xxxx就可以。

这里通过百度检索到一个神奇的字符串:ffifdyop,这个字符串加密之后是 ’or’6XXXXXXXXX

则SQL语句就被拼接为:select * from 'admin' where password=''or '6xxx ,会被MYSQL认为

select * from 'admin' where password='' or 6,这就完成了SQL注入。输入后进入下一个页面,直接看bp抓到的源码

根据提示,通过GET方式传入a b两个参数,且a和b不相等,MD5加密后相等

这里有2个思路,一个是利用弱等于,让a b不同,但是MD5加密之后都是同一个数字开头的字符串。也可以让a b不同,且都是数组。因为PHP的MD5函数加密数组返回的实NULL,则可以绕过检测。

这里给出一些MD5之后以数字打头的一些字符串

QNKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904

s214587387a
0e848240448830537924465865611904

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s1885207154a
0e509367213418206700842008763514

s1502113478a
0e861580163291561247404381396064

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s155964671a
0e342768416822451524974117254469

s1184209335a
0e072485820392773389523109082030

s1665632922a
0e731198061491163073197128363787

s1502113478a
0e861580163291561247404381396064

s1836677006a
0e481036490867661113260034900752

s1091221200a
0e940624217856561557816327384675

s155964671a
0e342768416822451524974117254469

s1502113478a
0e861580163291561247404381396064

s155964671a
0e342768416822451524974117254469

s1665632922a
0e731198061491163073197128363787

s155964671a
0e342768416822451524974117254469

s1091221200a
0e940624217856561557816327384675

s1836677006a
0e481036490867661113260034900752

s1885207154a
0e509367213418206700842008763514

s532378020a
0e220463095855511507588041205815

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s214587387a
0e848240448830537924465865611904

s1502113478a
0e861580163291561247404381396064

s1091221200a
0e940624217856561557816327384675

s1665632922a
0e731198061491163073197128363787

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s1665632922a
0e731198061491163073197128363787

s878926199a
0e545993274517709034328855841020

随便选2个给a b通过get方法传入即可。接着进入下一关 

可以看到跟上一关,类似,不过是POST方法传入2个参数,直接比较不相等,加密后相等。这里利用数组,param1[]=11&param2[]=22,要注意的是利用bp把GET方法修改为POST方法时,除了改方法类型,还要添加下面这个请求头

Content-Type: application/x-www-form-urlencoded

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值