wargame.kr WriteUp

24 篇文章 0 订阅

前面耽搁了一周半,一周半没碰电脑,真是爆炸,回来做做题练练手。做了几道wargame.kr的题,做了几道就不想做了,感觉还是偏基础了,意义不很大,但是博客还是要发的啊。。
这里就只有前面估计十来道的wp,后面的没做了,挺无聊的感觉。
不过适合刚刚接触web不久的筒子们,里面的姿势都还蛮经典的。

already got (200pt)

直接在响应头里面就看到flag了。

QR Code Puzzle (300pt)

也是直接看源码,图片的位置被url编码了,解码,访问,扫二维码,拿到flag

这里写图片描述

#flee button (450pt)
也是看源码,访问相应的网页就可以了
http://wargame.kr:8080/flee_button/?key=ad55

login filter (450pt)

先看源码

<?php

if (isset($_GET['view-source'])) {
    show_source(__FILE__);
    exit();
}

/*
create table user(
 idx int auto_increment primary key,
 id char(32),
 ps char(32)
);
*/

 if(isset($_POST['id']) && isset($_POST['ps'])){
  include("../lib.php"); # include for auth_code function.

  mysql_connect("localhost","login_filtering","login_filtering_pz");
  mysql_select_db ("login_filtering");
  mysql_query("set names utf8");

  $key = auth_code("login filtering");

  $id = mysql_real_escape_string(trim($_POST['id']));
  $ps = mysql_real_escape_string(trim($_POST['ps']));

  $row=mysql_fetch_array(mysql_query("select * from user where id='$id' and ps=md5('$ps')"));

  if(isset($row['id'])){
   if($id=='guest' || $id=='blueh4g'){
    echo "your account is blocked";
   }else{
    echo "login ok"."<br />";
    echo "Password : ".$key;
   }
  }else{
   echo "wrong..";
  }
 }
?>

这里看到mysql_real_escape_string再加上utf-8的编码,就知道没办法绕过过滤。那么就想办法绕过比较,发现大小写没有过滤,直接提交
id=GUEST&ps=guest即可。

wtf_code (450pt)

拿到发现是whitespace,直接上脚本解码就行了

def t2i(str):  
    out = 0  
    for i in range(0,8):  
        out += int(str[i])*(2**(7-i))  
    return out  

f = open('source_code.ws','r')  
x = f.readline()  
x = f.readline()  
ans=""
k = 0  
while x:  
    out = ''  
    for c in x:  
        if c==' ':  
            out += '0'  
        else:  
            out += '1'  
    x = f.readline()  
    l = len(out)  
    if 8 <= l <= 11 and k%2 ==0:  
        print out  
        c = t2i('0'+out[l-8:l-1])  
        #print chr(c)
        ans+= chr(c)
    k+=1  
f.close()  
print ans

这里写图片描述

db_is_really_good

首先在write.php确定了是sqlite数据库。
然后加上个/

这里写图片描述

找到规律就是sqlite数据库的db文件位置在/db/wkrm_username.db处,直接访问http://wargame.kr:8080/db_is_really_good/db/wkrm_admin.db拿到数据库文件,随便找个软件打开就知道了

这里写图片描述

访问拿到flag

fly me to the moon

直接抓发往high-scores.php的包,改成绩改个很大的数就可以了。

md5_compare

比较老套的MD5弱类型比较了
这里写图片描述

md5_password

也是经典姿势
这里写图片描述

strcmp

这里写图片描述

type_confusion

多提交两次就行了。
这里写图片描述

tmitter

join.php看到hint,应该是要以admin注册强行改密码什么的,加上id长度限制为32
这里写图片描述

输入admin a(ps:中间很多空格,总位数大于32,最后一个a防trim(),这样它截断32位再trim就成功了)

这里写图片描述

注册成功,登陆拿flag

这里写图片描述

SimpleBoard

直接看代码,
重点就在这个过滤这里

这里写图片描述

所以在每次构造idx同是,需要每次也把cookie改下,改成/+$idx就行了,然后就是简单的联合查询,POC如下:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值