自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wikey 的博客

一个简单的网络安全爱好者

  • 博客(74)
  • 收藏
  • 关注

原创 实验二—构造Person类(函数)

然后是三个set方法,这里要注意,这个并不是我们用的setter,getter方法。而是我们定义的成员方法,用this来对其传参,格式如下。同样只需要构造方法,主函数已经被写入程序里面了。首先就是先定义一个person类,然后创建成员变量,使用无参构造方法,传入三个值。这里的print相当于成员方法,这里需要添加void,因为打印方法不需要返回值。然后根据题目,提供一个print函数打印信息。

2024-04-04 22:40:33 191

原创 实验二—-设计一个矩形类Rectangle (函数题)

没什么好说的,无参方法的调用要用this。

2024-04-04 22:39:52 316

原创 实验一—-7-6 输出所有大于平均值的数

然后就是for循环,第一次我使用的是foreach循环,虽然可以输出平均数但是我忘了一个很关键的点就是foreach不可以改变变量的值,这导致我后来输出比平均数大的数总是为零。这里是先对n进行判断范围,确认在范围之后便是定义数组,声明和创建可以一起进行,类型记得要根据题目要求整数数组。因为我们将输入的n个整数要存入数组a中。意思是要获得输入的n 的整数,那么就要用到scanner input。随后就要对n进行判断其是否属于1~10,若属于程序继续进行,若不符合有效范围则输出”Invalid.”

2024-04-04 22:34:11 219

原创 实验一—7-5 用foreach求数组之和

随后因为要用foreach来遍历数组并输出数组中的所有元素的和,所以要先定义变量sum为0,int sum=0;然后是foreach将数组遍历,数组中的数是由我们输入input得到的。根据题的要求,首先要获得一个用户输入值作为数组长度。foreach不能改变对象值,但是for循环可以。最后打印出sum,再关闭scanner输入。首先要明白foreach的使用方法,

2024-04-04 21:33:50 295

原创 实验一—-7-4 统计正数和负数的个数然后计算这些数的平均值

附加if语句判断,根据题目要求,当输入为0时,停止程序。当输入大于0时,表明,多一个正数,即正++。接下来便要写输出函数了,先是判断正数加负数是否为零,若不为零,先定义一个求平均值的算法(AVE),打印正数个数,负数个数,再打印和,再打印平均值。因为最后结果要返回double型,所以要用强转,即AVE=(double)sum/(正+负)看题目要求,我们输入几个,可以是正数也可以是负数,但是输入0之后就不再获得输入值。ave = (double) sum / (正 + 负);int 负 = 0;

2024-04-03 23:06:40 354

原创 实验一—java判断直角三角形

注意看题目要求要求读取三个非零数值,并且因为是要作为三角形三边,那么我们就要使用高精度类型double类型来声明变量,先是scanner获取用户输入值。获得输入值之后就是判断是否构成直角三角形了,这里我使用的是三段一样的判断,并输出面积。最后不要忘记关闭scanner方法。//首先的引入import,然后就是搭主函数框架。

2024-04-03 22:51:54 292

原创 实验一—java输出一个月的天数

这道题最初我有两个思路,第一个是直接用笨办法穷举闰年和正常年份的每一个月的天数。这个方法比较简单我就不多赘述了,第二个方法则是先定义两个一维数组,并将闰年和正常年份的天数放进去,然后先是判断输入数据中的年份是否闰年即规定出数组,随机将月份天数对应数组数据输出,那么直接开写!

2024-04-03 22:48:40 152

原创 实验一--java判断是否偶数(函数)

一般这种遇到判断类的题都需要引入scanner和布尔型来解题,其中输入的数据型仍然是用声明,创建来命令。然后就是用简单的if语句来判断true或false了,如下所示。—定义的odd方法需要传参的data必须定义其类型!一般来说if,else是最易书写仅有两种情况的方法了。这道题只需要写它的函数方法。

2024-04-03 22:43:42 159

原创 实验一—java判断闰年

首先看到判断闰年的题,用Java来写先要考虑用Scanner获得一个输入值(注意要引用import,也可以让eclipse报错来自动引用)。使用Scanner之后便是经典步骤–声明创建。除此之外我们还注意到题目要求输出yes或no两种结果,那么我们首先便要想到用布尔型判断True or False,使用之前当然也要先定义嘛。最后不要忘记给scanner方法关闭输入,记得加上in.close。总结一下这道题的考察重点就是if判断和scanner方法的使用。然后就是很简单的if语句判断了。

2024-04-03 22:39:10 160

原创 php后端特性

在php中变量名字是由数字字母和下划线组成的,所以不论用post还是get传入变量名的时候,php会将怪异的变量名转换成有效的,在进行解析时会删除空白符,并将空格、+、点、[ 转换为下划线。但是用一个特性是可以绕过的,就是当 [ 提前出现后,[ 会转换成下划线,而后面的字符就不会再被转义了。所以这里传入的应该是?N[S.S=system(‘env’)&file=这是一种规范,当直接使用时则会导致一个问题无法使用。N_S.S等同于N[S.S。

2024-04-01 22:33:40 130

原创 伪协议配合回调函数写入命令

然后payload: GET v2=115044383959474e6864434171594473&v3=php://filter/write=convert.base64- decode/resource=1.php POST v1=hex2bin 最后访问1.php。//用来写文件进去,其中文件名参数是支持伪协议的,用于将第二个参数content进行过滤器后再写进文件里面去。v3得是一个文件把,写入一些命令执行的东西,那我们可以通过伪协议直接生成文件。当然这道题可以学到很多东西,首先我们先分析一下。

2024-04-01 22:33:07 245

原创 php特性

的运算符比and高,所以按照优先级的缘故,并不会执行到v2,v3。实则由于&& > || > = > and > or。这道题看似需要对v1,v2,v3做检测。

2024-04-01 22:32:00 104

原创 文件包含&rce

是为了和前面的形成闭合,这样在后面通过包含的1配合data伪协议进行传入参数,参数为一个执行的函数,这里给了我一个思路,如果我把<?>修改为base64的话,也许能进一步绕过。先说payload:?

2024-04-01 22:31:29 183 1

原创 rce取反脚本

/通过两次取反运算得到system。//通过两次取反运算得到dir。$ans2=’ls’;

2024-04-01 22:30:46 80 1

原创 flask–通过算pin码进入控制台

那么首先尝试能不能读取到环境变量的内容–(/proc/self/environ是Linux下中的一个文件,这个文件里保存了系统的一些变量。flask在开启debug模式下,可以通过输入pin码进行代码调试模式,也就是console控制台。进入题目首先知道两个信息–框架是flask–首先考虑是不是存在ssti第二个是题目描述中的信息(开启了debug模式)好的我们现在知道第一个有用信息就是,最后的flag位置位于环境变量中。这个其实往往都是默认的,但是还是演示一下。很多都是默认的,重点需要关注三个东西。

2024-03-31 22:31:09 524

原创 [SCTF 2021]loginme

题目的提示是CVE-2020-28483,我提前去查了一下。好像没有执行,这个时候回想到这个题用的是go语言的gin框架,go语言模板渲染支持传入一个结构体的实例来渲染它的字段,就有可能造成信息泄露。意思就是说用了gin框架的会出现漏洞可以用XFF文件头伪造admin。似乎是把我的输入给输出出来了,那我们试试模板注入。我发现直接用.也可,翻了其他博主的wp是这个原因。注意到这个id和名字,我们切换试试。代表要应用的对象,所以可以让。直到最后换到4,观察结果。

2024-03-31 22:19:44 145

原创 JWT框架

三部分分别为1.header:声明了JWT的签名算法 2.payload:承载了各种声明并传递明文数据,例如:username、password等 3.signture:拥有该部分的JWT被称为JWS,也就是签了名的JWS。Json Web Token,是一种令牌格式,形式由三部分组成,之间由。

2024-03-31 22:14:47 307

原创 [BJDCTF2020]EzPHP

正则匹配掉了许多我们之后要的参数,$_SERVER[‘QUERY_STRING’]不进行url解码,而GET的传参方式会进行一次解码,因此我们可以把要传的参数进行url编码(此处是对所有字符进行url编码,而不是对特殊字符如空格、引号等进行url编码)即可绕过黑名单限制。preg_match(‘/^aqua_is_cute$/’, $_GET[‘debu’])要求debu的值满足正则/^aqua_is_cute$/,^和$用来表示开头和结尾。首先保证传入的$code为create_funtion,

2024-03-31 22:13:24 613

原创 CTFSHOW-RCE挑战

分析:自增加上长度过滤,但是放出来了0和1,可以用01做变量来进行传参。只有0放出来了,并且字符数进一步缩小,但是可以在上一道题基础上改一下。初步思路是直接用反引号输出,也就是echo出来一个shell命令。用echo将值输出回来,然后反引号包裹shell命令。然后在get请求里面用_和__代替掉system和ls。这是编译前,记得删除注释后用url进行编码。额,根据我的印象中,这个题需要用自增。:post一个请求然后不能出现,和.在post里面用0和1进行命令执行。//输出NAN的第一个字符。

2024-03-31 01:34:46 446

原创 [天翼杯 2021]esay_eval WP

得到了payload:?}}直接不犹豫连接蚁剑.当我们以为就此结束可以拿到flag我们点击根目录发现这个shell没有访问权限,但是在/var/www/html中有上传权限,所以可以通过上传恶意的so文件,通过蚁剑的redis管理插件,进行ssrf,然后包含恶意so文件(:因为插件市场这个东西,国内基本是访问不到,我在用蚁剑访问的时候,就一直转圈圈转不出来,所以可以使用github的插件仓库下载插件,然后手动放到。

2024-03-31 01:34:38 1511

原创 [WUSTCTF2020]朴实无华

最终payload:?似乎不行,但是intval函数有一个绕过方式就是利用科学计数法111e3,intval函数里面只会显示111,但是科学计数法加1之后会先执行加法。

2024-03-31 01:34:33 386

原创 git泄露

官方给出的解释是:Git是一个控制系统 ,我们简单的理解为Git 是一个内容寻址文件系统,也就是说Git 的核心部分是键值对数据库。当我们向 Git 仓库中插入任意类型的内容(开发者们在其中做的版本信息修改之类的操作),它会返回一个唯一的键,通过该键可以在任意时刻再次取回该内容。Git信息泄露的危害很大,渗透测试人员、攻击者,可直接从源码获取敏感配置信息(如:邮箱,数据库),也可以进一步审计代码,挖掘文件上传、SQL注射等安全漏洞。

2024-03-31 01:34:28 254

原创 [GXYCTF2019]禁止套娃

举例:像a(b(c()));,第二次匹配后就还剩a();了,所以说这一串a(b(c())),就会被eval执行,但相反,像a(b(‘111’));打开连接,发现啥也没有,只有一句话在那,看了源码、抓包数据也没发现啥,用dirsearch目录扫描一下,间隔设置为0.1线程设置为1,防止429,就是跑得比较久。这段代码的核心就是只允许函数而不允许函数中的参数,就是说传进去的值是一个字符串接一个(),那么这个字符串就会被替换为空,如果替换后只剩下;是量词,匹配0个到1个,尽可能多匹配如果有必要,回溯更少的内容。

2024-03-31 01:34:23 271

原创 [WesternCTF2018]shrine

get_flashed_message()是通过flash()传入闪现信息列表的,能够把字符串对象表示的信息加入到一个消息列表,然后通过调用get_flashed_message()来取出。}}获取,但当这些被过滤的时候,current_app,这是全局变量代理,查看他的config即可,源代码会发现这里过滤了()和把’config’,’self’加入了黑名单。如果没有黑名单的时候,我们可以传入 config,或者传入{{self.引入两个模块,一个flask,一个os。那么原来格式的模板注入就不能用了,

2024-03-31 01:34:18 289

原创 [MRCTF2020]PYWebsite

纳尼,意思是我们的md5传入这个就会是验证通过,同时下面还给了一个目录/flag.php,先访问看看。这句话有点意思,只有两个人的IP可以看到,一个是购买的,一个是它本人–它本人就是127.0.0.1撒。先点一个买试试,发现是真的二维码,我就不去扫了,肯定不是这样出解。那我们XFF文件头伪造IP就行了。

2024-03-31 01:34:13 307

原创 [NPUCTF2020]ReadlezPHP

2.类里面要构造两个参数a,b.并且因为析构函数会执行 echo $b($a);,这种包裹的形式可以想到用system(ls /)查看。结果:O:8:”HelloPhp”:2:{s:1:”a”;那就可以构建HelloPhp的序列化字符串,直接查看phpinfo这样data传入时反序列化就会执行析构函数。1.需要我们输入data参数,之后将data参数反序列化执行,有一个类HelloPhp。CTRL+f检索flag。

2024-03-31 01:34:08 324

原创 [ASIS 2019]Unicorn shop

让我们输入商品ID和价格去购买,那肯定是尝试输入flag去请求。没有这个请求,那只有尝试用它原本的商品ID–1、2、3、4。在unicode编码里面有一些符号代表数字。同时我们换个思路–为什么一定非要是字符。换句话说,一个字符要代表比1337大。比如ↂ就代表数值是10000。中文里面的万和亿其实也是可以。只允许一个字符可以购买。

2024-03-31 01:34:02 371

原创 [BJDCTF2020]Mark loves cat

原因第一个是让flag变成参数$handsome,同时要让第二个检测,x不能等于flag,中间另设一个变量x,因为有foreach使我们get请求里面赋值的变量重新赋值为我们的键名。输出变量$handsome,满足条件$_GET[‘flag’] == = $x && $x!这里的值表面是 x 但前面我们进行了变量覆盖使得 x=flag 所以在这里我们输出x的值就是flag的值。2.githack下载源码。

2024-03-31 01:33:56 365

原创 CTF一开始该怎么学习WEB方向?

CTF中的Web题型,就是给定一个Web网站,选手要根据题目所提示的信息,找到网站上的flag字符串。我们需要掌握一些基本的语言,像PHP、Python、JavaScript等Web框架:ThinkPHP、Flask等在学习之前我们需要知道一些常识,也是最基本的常识--源代码这是我们未来需要面对的最多的东西,有了源码大部分的题目都能找出漏洞当然我们也不是经常能够遇到直接把源码放在明面上的情况,首先教大家怎么查看前端源码。

2024-03-31 01:33:49 670

原创 2022DASCTF MAY 出题人挑战赛

上午开题,下午才做。补了三道web浅写一下wp。

2024-03-30 08:54:49 284

原创 [GWCTF 2019]我有一个数据库

看到这个phpmyadmin4.8.1版本文件包含漏洞,问题出在index.php的target参数位置。直接就是乱码,联想到题目的数据库,那问题就i一定出现在数据库里,可以用两个扫描工具扫描试试。

2024-03-30 08:54:43 178

原创 [NISACTF 2022]babyupload(wp)

有一个小问题,我们在尝试上传图片马也就是//php木马时,burp会自行改形式为image/jpeg图片内容,我们既然需要伪造//flag文件,就需要改相应的格式。如: text/plain。这道题学会了个新姿势就是当res[0]为绝对路径时,我们可以直接跳转到最后文件地址而不需要补齐界面的文件,直接跳转//flag界面。所以用burp修改文件名为 //flag,跳转就读取到//flag文件了。当res[0]为绝对路径时,打开的就是绝对路径,不会进行拼接。给了上传地址直接访问就可。

2024-03-30 08:54:38 511

原创 [BJDCTF2020]ZJCTF,不过如此(wp)

看到file_get_contents()函数,就要联想到用php伪协议,需要用data://协议用filter协议去读下next.php的源码。一道老题,nss和buu上都有这道题,但是同样的步骤在buu上可以做出来但是nss平台上有点问题,就以buu为讲解。data://数据流封装器,以传递相应格式的数据。

2024-03-30 08:54:29 187

原创 [ZJCTF 2019]NiZhuanSiWei

对象类型:对象名长度:“对象名”:对象成员变量个数:{变量1类型:变量名1长度:变量名1;我们在编写代码的时候 储存的数据类型(对象)往往随着程序的终止而终止,而有些情乱下需要对象的状态保存下来。如果 反序列化对象中存在魔术方法 而且魔术方法中的代码或者变量用户可控,就可能产生反序列化漏洞,变量和参数类型:string:用s表示,Int:用i表示,Array:用a表示。作用:把序列化后的字符串转化为对象,恢复原本对象后用于程序或代码的各种操作。对象类型:Class:用O表示,Array:用a表示。

2024-03-30 08:54:24 250

原创 [SUCTF 2019]CheckIn

exif_imagetype函数,这是个判断图像类型函数,只要在文件前加上图片文件头就能绕过,另外这里有不包含<?但是在我上传另一个文件头为GIF89a的图片马时发现上传成功了,本想直接用.hatccess解析直接连蚁剑但是发现出现了一个判断函数。文件优势:跟.htaccess后门比,适用范围更广,nginx/apache/IIS都有效,而.htaccess只适用于apache。这个再加上前面的测试就可以明白了,就因为是这个函数检测是否为图片类型,还隔断了<?jpg也不行,没有内容,没事。

2024-03-30 08:54:18 198

原创 [极客大挑战 2019]Http

HTTP Connection的 close设置允许客户端或服务器中任何一方关闭底层的连接双方都会要求在处理请求后关闭它们的TCP连接。HTTP Referer是 header 的一部分,当浏览器向 Web 服务器发送请求的时候,一般会带上 Referer,告诉服务器该网页是从哪个页面链接过来的,在这里我们需要伪造成从 ‘https://Sycsecret.buuoj.cn’ 进入。到这里就是问题所在,尝试了很多次后我发现,如果把请求头放在重发器的最下面的话,就会出现返回错误的情况,如图。

2024-03-30 08:54:13 110

原创 [RoarCTF 2019]Easy Java

注意到有download,联想到可能是能够下载下来一些东西,这个报错提示应该是原本存储的一个help.docx文件,有思路之后我查询了以下Javaweb保存其他文件的地址,当通过这个地址去直接查找flag。/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。

2024-03-30 08:54:06 247

原创 [BUUCTF 2018]Online Tool

对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义,将&#;~<>^()[]{}$\, \x0A和\xFF以及不配对的单/双引号转义;把字符串转码成可以在shell命令里使用的参数,将单引号进行转义,转义之后,再在左右加单引号;两个方法一起使用就会出现命令执行的问题–原本的命令被当作字符串被上传了。同时在nmap里面有一个参数-oG可以实现将命令和结果写到文件。2.对传入的参数使用的两个方法利用。大概讲讲我所理解的这两个方法。把路径跟在网址后面连接蚁剑。

2024-03-30 08:54:01 207

原创 [BJDCTF2020]The mystery of ip

在url后面,或是参数中添加 {{ 7*7 }} ,查看返回的页面中是否有49。想到IP,第一个就要考虑是不是用x-forwarded-for伪造文件头。观察模板是否变成49.如果发生改变证明我们的语句被输出在了模板上。发现是可以伪造的,那么就要考虑,是否存在模板注入。在模板注入中,主要使用的是{{}} 和 {%%}#} 表示未包含在模板输出中的注释。}} 用来将表达式打印到模板输出。检测方法:{{7*7}}那么就命令执行就可以了。可以用hackbar。检测是否存在ssti。

2024-03-30 08:53:57 94

原创 [网鼎杯 2020 朱雀组]phpweb

黑名单绕过取巧payload:?payload:?

2024-03-30 08:53:49 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除