本文共 850 字,大约阅读时间需要 2 分钟。
分享一下我老师大神的人工智能教程!零基础,通俗易懂!
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
登陆一下好吗??()
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= ‘username′andpassword=′password’
进过测试,发现过滤了以下字符
| , – , or , union , # , select ,* ,/
这写字符没办法绕过。
但是为了登陆成功,需要让 sql语句返回true。
除了pact想到的同双等号绕外,还有一种方法,主要用到以下两个技巧:
第一: mysql的数据类型转换特性。
通过这个图,应该可以看明白啦, user是一个字符串类型的,当他接受到一个整型值切值为0的时候,就会返回数据库的所有条目。 一个字符串加一个整形,会自动的变量类型转换,变为一个整型。所以,只需要让sql执行
select * from table where username=’a’+0;
就可以返回一个ture了,但是你会发现注释符全部过滤啦,后面的部分去不掉,这时候你需要知道下面的姿势。
第二: mysql的注释符除了
– + , # ,/**/ 之外,还有一个 ;%00 ,很多人都不知道最后一个。
所以最后的payload 是这样的: username=a’+0;%00&password=