美文网首页
2019-05-11 Jarvis OJ Writeup之Web

2019-05-11 Jarvis OJ Writeup之Web

作者: NoelleMu | 来源:发表于2019-05-12 00:04 被阅读0次

    好长时间没有更新了,这段时间一直在忙各种各样的事情,这几天终于忙完了,也能继续静下心来打CTF了。
    这么长时间不打CTF,感到自己功力尽废,也是时候弥补这一个月落下的进度了。

    [61dctf]admin

    分值:100

    考察查看robots.txt、基本的抓包改包操作

    点进去一看只有Hello World,查看网页源代码也没有什么有用的信息

    尝试了index.html、admin.html、login.html,都是not found,这时突然想到robots.txt,果然有发现

    访问这个页面,得到了一个flag,但是提交了一下显示不对,所以这是个假flag

    根据以往的做题经验,这时候在请求头里一定有一个admin=0或者类似的东西,于是抓包

    把这个admin=0改成admin=1,发包,成功得到真正的flag。注意flag后面有一个空格,记得提交的时候把它删掉,否则会显示答案错误。

    PORT 51

    分值:100

    考查curl命令指定端口

    打开一看写着“Please use port 51 to visit this site.”,本来以为是要访问51号端口,想了想好像不是,应该是必须通过本地的51端口来访问这个网站,这时候就要用到curl --local-port指定端口号了。

    --local-port参数的解释如下:

    居然不弹flag,本来以为是自己的方法出错了,但是之后看了很多别人的wp也是用的完全一样的方法,估计是题目挂掉了?也想不到什么别的原因了。

    这个做法应该是没错的,没办法只好用了别人的flag。

    LOCALHOST

    分值:150

    考察XFF头

    打开一看只有“localhost access only!!”,那肯定是要在请求头里加“X-Forwarded-For: 127.0.0.1”来绕过了。

    抓包,加上XFF发包:

    拿到flag:

    Login

    分值:250

    考察md5()函数和SQL注入

    这道题比较复杂,原理我也想了很久才搞明白。

    参考资料:https://blog.csdn.net/March97/article/details/81222922

    点进去一看只有一个Login,而且网页源代码里没有有用的信息。

    这时候应该就是SQL注入了。看了一眼响应头发现一条hint:

    SQL注入没跑了。

    这个.md5($pass, true)的意思大概是这样:

    来源:http://www.w3school.com.cn/php/func_string_md5.asp

    到这里我也蒙了,百度了一下找到了一开始放的那篇参考文章,才知道原理大概是这样子:

    这题的答案“ffifdyop”在经过如Hint中所述的md5()函数处理之后得到的结果是'or'6×××××(后面都是乱码,只有'or'6是有用的),而SQL语句在判断时,如果'or'后面是一个数字,就会被判断为真,也就达到了SQL注入的效果。

    而根据Hint,这道题只需要提交ffifdyop这个答案就可以了。

    不过这个ffifdyop是怎么找到的呢?还是没有搞明白,以后慢慢想吧。

    [61ctf]babyphp

    分值:200

    考察Git源码泄露、PHP代码注入

    打开一看是一个网站,随便翻了翻发现一个提示:

    可以想到Git源码泄露,于是直接上GitHack:

    随便看了一下源码,有一个flag.php但是什么有用的信息都没有,但是在index.php里发现了assert代码注入漏洞:

    参考资料: https://www.cnblogs.com/sn00py/p/5925944.html

    此段代码中的关键部分含义如下:

    1. templates和传入的page参数和.php后缀结合赋给变量file
    2. file经过滤..()防止目录遍历
    3. 判断文件是否存在

    assert()函数把传入的字符串当做PHP代码执行,可以通过构造可控的参数file来执行代码读取flag.php

    payload:/index.php?page='.system("tac templates/flag.php").'

    试了好几次,不知道为什么cat就不行而tac就可以。。。

    拿到flag。

    未完待续……

    相关文章

      网友评论

          本文标题:2019-05-11 Jarvis OJ Writeup之Web

          本文链接:https://www.haomeiwen.com/subject/pnfqaqtx.html