Mar062020
Natas23 Writeup(php弱类型)
Natas23:
一个登录页面,查看源码,发现关键代码:
if(array_key_exists("passwd",$_REQUEST)){
    if(strstr($_REQUEST["passwd"],"iloveyou") && ($_REQUEST["passwd"] > 10 )){
        echo "<br>The credentials for the next level are:<br>";
        echo "<pre>Username: natas24 Password: <censored></pre>";
    }
    else{
  ...阅读全文
抢沙发
Mar062020
Natas21 Writeup(共用session、session注入)
Natas21:
第一个网页
第二个网页
提示http://natas21.natas.labs.overthewire.org/页面和http://natas21-experimenter.natas.labs.overthewire.org页面同位,也就是共用服务器,session也是共用的。
查看第一个网页源码,发现主要功能就是判断session[admin]=1后显示密码。
function print_credentials() { 
    if($_SESSION and array_key_exists("admin", $_SESSION) and $_SESSION...阅读全文
Mar062020
Natas20 Writeup(Session登录,注入参数)
Natas20:
读取源码,发现把sessionID存到了文件中,按键值对存在,以空格分隔,如果$_SESSION[“admin”]==1,则成功登陆,得到flag。并且通过查询所提交的参数,也会被存到文件中,因此,可以采取注入键值对admin 1的方式来实现修改。使用burp抓包,将name参数修改为:name=xxx%0Aadmin 1,得到flag。
源码解析:
<html>
<head>
<!-- This stuff in the hea...阅读全文
Mar062020
Natas17 Writeup(sql盲注之时间盲注)
Natas17:
源码如下
/*
CREATE TABLE `users` (
  `username` varchar(64) DEFAULT NULL,
  `password` varchar(64) DEFAULT NULL
);
*/
if(array_key_exists("username", $_REQUEST)) {
    $link = mysql_connect('localhost', 'natas17', '<censored>');
    mysql_select_db('natas17', $link);
    
    $query = "SELECT * from users where username=\"".$_REQUEST["usern...阅读全文
Mar062020
Natas16 Writeup(正则匹配,php命令执行)
Natas16:
源码如下
<?
$key = "";
if(array_key_exists("needle", $_REQUEST)) {
    $key = $_REQUEST["needle"];
}
if($key != "") {
    if(preg_match('/[;|&`\'"]/',$key)) {
        print "Input contains an illegal character!";
    } else {
        passthru("grep -i \"$key\" dictionary.txt");
    }
}
?>
这一关相较于之前的第10题,加上了正则过滤,使...阅读全文
Mar062020
Natas15 Writeup(sql盲注之布尔盲注)
Natas15:
源码如下
/*
CREATE TABLE `users` (
  `username` varchar(64) DEFAULT NULL,
  `password` varchar(64) DEFAULT NULL
);
*/
if(array_key_exists("username", $_REQUEST)) {
    $link = mysql_connect('localhost', 'natas15', '<censored>');
    mysql_select_db('natas15', $link);
    
    $query = "SELECT * from users where username=\"".$_REQUEST["usern...阅读全文
Mar062020
Natas13 Writeup(文件上传,绕过图片签名检测)
Natas13:
与上一关页面类似,还是文件上传,只是多了提示“出于安全原因,我们现在仅接受图像文件!”。源码如下
function genRandomString() {
    $length = 10;
    $characters = "0123456789abcdefghijklmnopqrstuvwxyz";
    $string = "";    
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters)-1)];
    }
    retur...阅读全文
Mar062020
Natas12 Writeup(文件上传漏洞)
Natas12:
文件上传页面,源码如下:
function genRandomString() {
    $length = 10;
    $characters = "0123456789abcdefghijklmnopqrstuvwxyz";
    $string = "";    
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters)-1)];
    }
    return $string;
}
function makeRandomPath($dir, $ext) {
    do {
    $path...阅读全文
Mar062020
Natas11 Writeup(常见编码、异或逆推、修改cookie)
Natas11:
页面提示cookie被异或加密保护,查看源码,发现了一个预定义参数和三个函数。
//预定义参数,猜测将showpassword设置为yes即可得到密码。
$defaultdata = array( "showpassword"=>"no", "bgcolor"=>"#ffffff"); 
//异或加密函数
function xor_encrypt($in) {
    $key = '<censored>';	//预定参数key
    $text = $in;			//输入参数
    $outText = '';			//输出...阅读全文
Mar062020
Natas9 Writeup(命令注入)
Natas9:
审计源码,发现关键代码:
$key = "";
if(array_key_exists("needle", $_REQUEST)) {
    $key = $_REQUEST["needle"];
}
if($key != "") {
    passthru("grep -i $key dictionary.txt");
}
php代码调用了passthru函数执行grep命令来查找我们提交的内容是否在 dictionary.txt中,由此想到命令注入漏洞,且已知各等级密码均存储在/etc/natas_webpass目录下,使用;或|或&...阅读全文
 
        
         
 
 
 
 
 
 
 
 
