Sensitive Data Exposure
敏感数据泄露。
Base64 Encoding (Secret)
low
先进行url解码,再base64解码得到secret为1
medium and high
使用sha1加密
if($_COOKIE["security_level"] == "1" or $_COOKIE["security_level"] == "2")
{
$secret = sha1($secret);
}
else
{
$secret = base64_encode($secret);
}
Clear Text HTTP (Credentials)
明文传输用户凭证。
low中使用http,账户密码明文传输,而medium和high中使用https,加密传输。
switch($_COOKIE["security_level"])
{
case "0" :
$url = $_SERVER["SCRIPT_NAME"];
break;
case "1" :
$message = "A certificate must be configured to fully function!";
$url = "https://" . $_SERVER["HTTP_HOST"] . $_SERVER["SCRIPT_NAME"];
break;
Heartbleed Vulnerability
只能在虚拟机上做。原来实验做过这个漏洞,大概意思就是openssl协议中有漏洞,发送数据的时候在数据末尾增加x个字符,openssl协议就会从服务器的内存中取出x个字符并返回,会导致敏感信息泄露。
low
这,还用xss干嘛
不过上网查了一下HTML5 Web Storage
,在HTML5中好像新增了本地数据库存储的方式(https://www.w3schools.com/html/html5_webstorage.asp)。
Text Files (Accounts)
我感觉似乎不能进一步利用,只能知道用明文和不加盐sha存储不安全,可能是我太菜了找不到怎么利用?上网也搜不到。
源码如下。
switch($_COOKIE["security_level"])
{
case "0" :
$line = "'" . $username . "', '" . $password . "'" . "\r\n";
break;
case "1" :
$username = xss_check_3($username);
$password = sha1($password, false);
$line = "'" . $username . "', '" . $password . "'" . "\r\n";
break;
case "2" :
$username = xss_check_3($username);
$salt = md5(uniqid());
// $password = sha1($salt . $password, false);
//$password = hash("sha512", $salt . $password, false);
$password = hash("sha256", $salt . $password, false);
$line = "'" . $username . "', '" . $password . "', 'salt:" . $salt . "'" . "\r\n";
break;
default :
$line = "'" . $username . "', '" . $password . "'" . "\r\n";
break;
}