首页 > 其他分享 >【misc】[HNCTF 2022 Week1]calc_jail_beginner(JAIL) --沙盒逃逸

【misc】[HNCTF 2022 Week1]calc_jail_beginner(JAIL) --沙盒逃逸

时间:2023-11-08 23:13:37浏览次数:41  
标签:__ beginner HNCTF 逃逸 沙箱 import 沙盒 os

这是一道python沙盒逃逸的题目:

沙箱逃逸:就是在给我们的一个代码执行环境下,脱离种种过滤和限制,最终成功拿到shell权限的过程,其实就是闯过重重黑名单,最终拿到系统命令执行权限的过程,这里不理解没关系,多做两道题就知道了,老实说国内的沙箱逃逸的题不是很多,而且大多都是面向新手的?对我来说正好就是了,然后的话,如果像深入了解的话还是建议去做做国外的沙箱逃逸,国外出得比较多

这里先补充一些关于沙箱逃逸的知识点

花式 import

首先,禁用 import os 肯定是不行的,因为

import  os
import   os
import    os
...

都可以。如果多个空格也过滤了,Python 能够 import 的可不止 import,还有 __import____import__('os')__import__被干了还有 importlibimportlib.import_module('os').system('ls')

这样就安全了吗?实际上import可以通过其他方式完成。回想一下 import 的原理,本质上就是执行一遍导入的库。这个过程实际上可以用 execfile 来代替

现在我们下载以下题目给的附件

这里有个eval函数:

eval()是Python的一个内置函数,用于执行字符串代码。它接受一个字符串作为参数,并将其作为Python代码进行解释和执行。

就是说eval函数可以执行我们输入的字符串代码

这里输入__import__('os').system('sh')即可getshell,__import__('os')表示导入os库,里面有系统执行的函数

标签:__,beginner,HNCTF,逃逸,沙箱,import,沙盒,os
From: https://www.cnblogs.com/GGbomb/p/17818566.html

相关文章

  • 必看!玩转Salesforce沙盒的5个实用技巧
    定期刷新沙盒对于尝试最新版本的功能,以及防止在生产组织的环境中缺乏测试而导致开发工作回滚至关重要。为了确保沙盒设置在刷新后顺利进行,需要考虑几个因素。首先,确保有完善的文档化流程。文档应分为Conga、DocuSign、数据(CPQ/计费/高级审批)、用户设置和集成等部分。此外,重要的......
  • AtCoder Beginner Contest 327 (ABC327)
    A.ab直接根据题意模拟即可。CodeB.A^A直接枚举\(i=1,2,\dots,15\),每次看看\(i^i\)是否等于\(A\)即可。CodeC.NumberPlaceDescription给你一个\(9\times9\)的矩阵\(A\),判断是否合法,满足以下三个条件,即为合法。对于每一行,包含数字\(1\sim9\);对于......
  • AtCoder Beginner Contest(abc) 319
    B-Measure难度:⭐题目大意给定一个数N,我们要求输出长度为n+1的一个序列Si(i从0到n),对于Si,如果存在j(j从1~9)是N的一个除数,并且i是N/j的一个倍数,那么Si就是满足条件的最小的j,如果没存在就输出'-';解题思路数据不大,暴力即可;神秘代码#include<bits/st......
  • AtCoder Beginner Contest 327
    A-ab题意:判断字符串中是否有“ab”或者是“ba“#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ intn; cin>>n;strings; cin>>s; if(s.find("ab")!=s.npos||s.find("ba")!=s.npos){ cout<<"Yes"; }else{......
  • AtCoder Beginner Contest(abc) 318
    B-Overlappingsheets难度:⭐题目大意在一个坐标系中给出覆盖多个矩形,问最后所有矩形覆盖的总面积是多少;解题思路坐标系的范围不大,标记后遍历即可;还是要注意给的是坐标系的点,计算的是边;神秘代码#include<bits/stdc++.h>#defineintlonglong#define......
  • 【转载】The Beginner’s Guide to Creating and Selling Cheat Sheets
    【from】https://medium.com/practice-in-public/the-beginners-guide-to-creating-and-selling-cheat-sheets-23756af06b12Thisis10xbetterthanyour50-pageebookHaveyoueverwishedyoucouldcutthroughthenoiseandgettotheheartofatopicquickly?E......
  • AtCoder Beginner Contest(abc) 327
    B-A^A难度:⭐题目大意给出一个数n,问是否存在一个数m,使mm=n;解题思路因为n的数据范围很大,到1e18,经过打表可以发现,当m=16时就已经大于1e18了,因为数很多所以用了__int128,因为double会损失精度;神秘代码#include<bits/stdc++.h>#defineintlonglon......
  • AtCoder Beginner Contest(abc) 317
    B-MissingNo.难度:⭐题目大意给定n个数,这n个数中最小值到最大值之间缺一个数,输出这个数;解题思路数据不大,暴力即可;神秘代码#include<bits/stdc++.h>#defineintlonglong#defineIOSios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#defineendl......
  • HHKB Programming Contest 2023(AtCoder Beginner Contest 327) 赛后总结
    HHKBProgrammingContest2023(AtCoderBeginnerContest327)赛后总结又没来得及写题解。。。赛时A-ab查找ab和ba,只要其中一者存在就行。#include<bits/stdc++.h>usingnamespacestd;intn;strings;intmain(){cin>>n>>s;cout<<(s.find("a......
  • Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginner Contes
    JapanRegistryServices(JPRS)ProgrammingContest2023(AtCoderBeginnerContest324)赛后总结可悲的是:我没来得及写题解。TaskASame秒切。直接输入排一遍序再遍历即可。#include<bits/stdc++.h>usingnamespacestd;intn,a[101];intmain(){cin>>n;......