170822 WarGames-Natas(27-28)

本文详细介绍了在 Natas 游戏的 Level 27 和 28 中遇到的 SQL 溢出和 ECB 加密漏洞。在 Level 27 中,通过 VARCHAR 列的溢出截断漏洞,成功插入记录来获取信息。Level 28 中,利用 ECB 加密模式的弱点,构造 SQL 注入,通过填充字符和精确计算,实现了注入攻击,最终获得下一关的密码。
摘要由CSDN通过智能技术生成

1625-5 王子昂 总结《2017年8月22日》 【连续第323天总结】
A. Natas
B.

Level 27

按照之前sql注入的尿性,username应该是natas28,试一下回复Wrong password确认无误
本来以为是宽字节注入,绕过mysql_real_escape_string()函数
原理是该函数对单引号等字符自动进行转义,在前边添加’\’
单引号字符为0x27,在前边添加’\’后变为0x5c27
如果构造输入0xbf27,即“¿’”,转义以后变为0xbf5c27,而在宽字符集(如GBK)中存在0xbf5c字符,于是将’\’吃掉,从而保持单引号字符起效
这是mysql_escape_string()和addslashes()存在的漏洞
对于增强型的mysql_real_escape_string()函数,会自动检测数据库所使用的字符集;如果不是宽字节字符集,那么该漏洞将无法起效

试了一下发现不行,真正的漏洞在这里:

    $query = "SELECT * from users where username='$user'"; 
    $res = mysql_query($query, $link); 
    if($res) { 
        if(mysql_num_rows($res) > 0) { 
            while ($row = mysql_fetch_assoc($res)) { 
                // thanks to Gobo for reporting this bug!   
                //return print_r($row); 
                return print_r($row,true); 
            } 
        } 
    } 
    return False; 

它会返回所有username相符的结果,换言之我们如果能插入另一条用户名为natas28,密码为自定的记录,就会把本来存在的natas28给一起暴露出来

这里可以利用mysql的溢出截断漏洞
由源码可知username varchar(64) DEFAULT NULL

Level 11: 1. 登录后,发现页面上有一个输入框,可以输入任意的字符串,然后点击“Submit Query”按钮,就会返回一个加密后的字符串。 2. 查看网页源代码,发现有一段JavaScript代码,其中包含了一个函数`encodeString`,它是用来加密输入的字符串的。 3. 通过分析`encodeString`函数的代码,发现它是对输入的字符串进行了简单的替换和反转操作,最终得到了一个加密后的字符串。 4. 我们可以尝试对加密后的字符串进行反向操作,还原出原始的字符串。 5. 将得到的原始字符串作为参数,构造一个URL,然后访问这个URL,即可通过该关卡。 Level 12: 1. 登录后,发现页面上有一个输入框,可以输入任意的字符串,然后点击“Submit Query”按钮,就会返回一个加密后的字符串。 2. 查看网页源代码,发现有一段PHP代码,其中包含了一个函数`echo base64_encode(strrev(xor_encrypt($data, $key)));`,它是用来加密输入的字符串的。 3. 通过分析`xor_encrypt`函数的代码,发现它是对输入的字符串进行了异或加密操作,并且加密的密钥是一个固定的字符串。 4. 我们可以尝试对加密后的字符串进行反向操作和异或解密操作,还原出原始的字符串。 5. 将得到的原始字符串作为参数,构造一个Cookie,然后将该Cookie发送给服务器,即可通过该关卡。注意,这里要修改的是Cookie,而不是URL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值