自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 [GXYCTF 2019]BabyUpload

后端代码对文件类型 Content-type 有限制。但文件后缀为.jpg,蚁剑不能连接。:解析.jpg文件中的php代码 ,内容为。传.htaccess文件失败,后发现。且后缀不能有 php。.htaccess文件。

2024-04-26 19:23:30 276 2

原创 [NISACTF 2022]babyupload

(path,*paths)函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。就是说传/flag,那么之前的upload/就会删除,就直接读取了根目录下的flag文件。抓包将文件名改为/flag。如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径。然而,这个函数有一个少有人知的特性,,使得输出的文件只能是在目录。,且文件名前会拼接一个前缀。上传的文件不能有后缀。

2024-04-26 17:15:12 452

原创 [SWPUCTF 2022 新生赛]ez_ez_unserialize

要绕过wakeup函数,只要序列化的中的成员数大于实际成员数。

2024-04-23 23:25:13 179

原创 [SWPUCTF 2022 新生赛]1z_unserialize

所以我们可以通过构造一个恶意的序列化对象,将自定义的函数传递给 $lt 属性,然后将要执行的代码(或者指向一个恶意代码文件的路径)传递给 $lly 属性。当对象被序列化后再被反序列化时,__destruct 方法会被自动调用,从而执行指定的恶意操作。由题目可知,实现nss反序列化的同时,会触发__destruct()的魔术方法将lt的值赋给a,然后调用a中存储的函数,并将lly属性的值作为参数传递给该函数。只要传参把a变成system();,this->lly变成ls或者cat就是一个简单的命令注入了。

2024-04-23 23:18:48 370

转载 [CISCN 2019华北Day2]Web1

1.知道一个表flag,表中有字段flag---》可以直接跳到查数据那一步啊2.输入--+、#、'、"等都不行---》用fuzz测试查看过滤了那些。

2024-04-22 18:51:54 16

原创 ctf.show_web14

information_schema.tables 或 .columns 用反引号 information_schema.过滤了information_schema.tables、information_schema.column、空格。在switch中,case 里如果没有 break,则会继续向下执行 case。从数据库中查看文件内容,mysql提供了。的函数 load_file()

2024-04-21 11:17:02 299 2

原创 [强网杯 2019]随便注

handler 不是通用的SQL语句,是Mysql特有的。查看数据: HANDLER 表名 READ next;关闭表: HANDLER 表名 READ CLOSE;打开表:HANDLER 表名 OPEN;

2024-04-20 19:54:53 254 3

原创 [LitCTF 2023]这是什么?SQL !注一下 !

2.查询数据时,from后面要填 数据库名.表名。只填flag表名查询不到。如果在当前数据库中没有查到flag,有可能在别的数据库。1.flag不一定要在当前库中,可能在别的数据库。

2024-04-19 12:26:02 71

原创 [SWPUCTF 2021 新生赛]sql

和--+ %23。1.要注意 标签页上的东西。3.substr与mid使用。2.sql关键字过滤。

2024-04-18 20:53:08 122

原创 [SWPUCTF 2021 新生赛]error

如果 flag 只出现一半,用substr(A,B,C)# 31-60位 右边边31位。# 0-30位 左边30位。不能用limit 0,1。

2024-04-17 23:01:43 181

原创 sqlmap使用教程

D 数据库名 -T 表名 --tables。-D 数据库名 -T 表名 --dump。-D 数据库名 --tables。查看目前使用的数据库。

2024-04-17 22:56:08 221

原创 [鹤城杯 2021]Middle magic

这里要猜测 $result 是一个字符串,这样 0=="abc",为true。如果代码替换了abc,但后面又要求有abc,可以用。哈希函数无法处理数组,会返回结果 null。: 解码 JSON 字符串。只能匹配一行的数据。

2024-04-17 21:59:09 350

原创 ctf.show_web13

在.usr.ini中如果设置了文件名,那么任意一个页面都会将该文件中的内容包含进去。在 .usr.ini 中输入 auto_prepend_file =a.txt,这样在该目录下的所有文件都会包含 a.txt 的内容。auto_prepend_file=a.txt // 意思是所有a.txt文件都以php文件方式打开。上传成功之后,但蚁剑这里连接不上,可能是.txt文件蚁剑无法通过php进行解析吧。要求文件大小少于24字节,文件名少于九个字节,后缀小于三个字节,并且。,文件名不能为php。

2024-04-16 22:02:54 239

原创 【攻防世界】warmup

发现有一个通过python启动app.py的命令。有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。知道当时的命令是什么,就能获取xxx.py的名字,进而读取源码。随便点进一个,发现文件,可能存在任意文件读取漏洞(路径穿越漏洞),可以实现任意文件的读取。

2024-04-16 11:02:24 366

原创 【攻防世界】mfw

如果里面是一个字符串,则会当作php代码来执行。比如 assert( "file_exists('$file')" )。想办法绕过 assert("strpos('$file', '..') === false")(1)这里要注意不能直接写在url上,浏览器会对它进行编码,把它写在HackBar;assert函数在php中用来判断一个表达式是否成立,返回ture、false。页面发现git ,可能存在git注入。GitHack:下载泄露的.git文件夹下的文件到本地。(2)写 #、// 都可以。

2024-04-15 11:22:50 889

原创 【攻防世界】lottery

随便输入7个数字,抓包,把numbers改为数组:[true,true,true,true,true,true,true](5) 空数组 [ ] (注意,一旦包含元素,就算包含的元素只是一个空数组,也是true)本题已提供源码,如果没提供,输入/robots.txt,发现/.git。(9)所有其它值包括-1都被认为是 TRUE (包括任何资源)(6)不包括任何成员变量的对象(仅 PHP 4.0 适用)(1)尽管代码在多,也要认真看(一般靠直觉 )。(7)特殊类型 NULL(包括尚未赋值的变量)

2024-04-15 11:22:43 451

原创 【攻防世界】ics-07

session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。我们递归的在1.php文件夹中再创建2.php,访问1.php/2.php/..进入的是1.php文件夹。匹配 ".php"、".php3"、".php4"、".php5"、".php7"、".phpt" 或 ".phtml" 结尾的文件名。(1)if ($_SESSION['admin']):判断 session 中的 admin 是否有值。一个点调用最后面的文件,两个点调用第一个文件。

2024-04-15 10:47:16 554 3

原创 【攻防世界】bug

抓包修改后缀为 “php5”,Content-Type 为 “image/jpeg”,并在 post 数据中将 PHP 一句话木马改为用 JavaScript 表示。4. 利用JavaScript执行php代码(正常的php代码会被检测到,所以就用JavaScript来执行)在muma.php里写一句话木马,发现系统能认出这是php文件,说明开启了内容的检测(存在。3. 等价替换(php5,php3)Content-Type 判断。文件内容过滤 PHP 的语法。

2024-04-14 14:57:39 534

原创 【攻防世界】ezbypass-cat

突然想到有可能是权限绕过的问题,因为以login开头的登录界面一般是白名单,原理简单来说就是访问白名单目录login.html,然后通过…/回到正常目录下,再访问flag.html。

2024-04-11 18:01:39 194

原创 【攻防世界】Cat

2.在url中输入%79,变成y 了。说明服务器对我们输入的内容会进行 url解码 并显示到url上。url 编码使用的是 16 进制,80 也就是 128,ASCII 码是从 0-127,所以传递。当且仅当文件中存在中文字符的时候,Django 才会报错导致获取文件内容。django编码方式为gbk,超过了ascii码范围就会报错。3.从报错信息中,要知道 Django 框架。1.知道是命令行,可以ping操作,可以。没反应,说明过滤了。4.通过报错,可以获取信息。当作绝对路径请求,来读取文件。

2024-04-11 17:06:25 336

原创 【攻防世界】wife_wife

原型链污染不太准确的理解就是“父类影响子类”,一个子类继承于父类后,父类有什么属性子类就有什么属性。比如这里我们的注册信息data按照json的形式传入,JSON.parse后得到一个对象。比较容易搞混的地方来了,这个__proto__是键名,单纯是个键名,值为{“isAdmin”:true},而不是类的原型对象prototype。baseUser猜测是user类似父类的东西,user应该就是上面的。尝试读取isAdmin属性时会顺着上去找父类的,得到true,进入if语句赋值就没用了。

2024-04-09 21:45:10 348

原创 【攻防世界】Web_python_template_injection

python中新式类(也就是显示继承object对象的类)都有一个属性__class__可以获取到当前实例对应的类,随便选择一个简单的新式类实例,比如 '' ,一个空字符串,就是一个新式类实例,所以 ''.__class__ 就可以获取到实例对应的类.找到我们想要的 `os` 所在的 `site._Printer` 类,它在列表的第七十二位, 即 `__subclasses__()[71]`。前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容,以 file 形式返回。

2024-04-09 16:48:29 808

原创 【攻防世界】Confusion1

request 是 Flask 框架的一个全局对象 , 表示 " 当前请求的对象( flask.request ) "。所以我们可以利用request.args绕过输入黑名单,进行沙箱逃逸。php的标志是大象,Python的标志是蛇。Python 的 Flask 框架( Flask 使用 Jinja2 作为模板引擎 )输入 {{config}} 也有回显,ssti。过滤了关键字,并未过滤request。点进register.php。

2024-04-09 16:45:15 477 1

原创 【攻防世界】题目名称-文件包含

一直显示 do not hack!,可能是 include("./check.php") 过滤了。依次尝试如下payload,还是提示 do not hack。看到 include(),想到文件包含,用php伪协议。convert.iconv. 要一个一个的破解。(1)php://filter 其他编码方式。convert.iconv.[ ]过滤器。,想到文件包含,用php伪协议。找到输出编码,再找输入编码。

2024-04-09 15:16:04 598 1

原创 【攻防世界】FlatScience

想到在查看 robots.txt 的时候有个 admin.php,选 admin 来破解,根据 hint 猜测 fav word 藏在前面看到的 pdf 里面,需要写个脚本,把里面的词都给提取出来,拼接上”Salz!想办法把 pdf 文件都给爬下来。输入 http://61.147.171.105:61912/login.php/name 等同于 if 语句中的 id,sql 等同于 name。在login.php 中发现。

2024-04-06 23:00:41 1063

原创 【攻防世界】shrine

(2)blacklist = ['config', 'self']:黑名单,但flag在config文件里。(1)app.config['FLAG']:把FLAG放到app里。(一般ctf把flag藏在config里);如果config,self不能使用,就用。如果没有黑名单,直接用。

2024-04-05 17:36:32 200

原创 【攻防世界】easytornado

可以把它理解为 tornado 模板中内置的环境配置信息名称,通过handler.settings 可以访问到环境配置的一些信息。看到 tornado 模板基本上就用 handler.settings。{{ }}有回显,一般存在模版注入。得到cookie_secret。模版注入 + tornado模板。

2024-04-05 15:16:42 217

原创 【攻防世界】ics-05

提示:要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。使用 /e 修饰符,preg_replace 会将 replacement 参数当作 PHP 代码执行。php://filter 伪协议查看源码 + preg_replace 函数漏洞。1.获取网页源代码。多点点界面,发现点云平台设备维护中心时,页面发生变化。page=index 输入什么显示什么,有回显。用php://filter读取网页源代码。

2024-04-05 11:49:47 619

原创 git源码泄露

(1)看看有没有提示使用了 Git,如果有就考虑存在。如果没有也可以使用 dirsearch 工具扫描后台,如果存在则会扫描出 .git 目录如图所示。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们。GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。(3)访问 .git/head 文件,如果能下载也能推断存在 Git 源码泄露。(2)直接通过网页访问 .git 目录,如果能访问就说明存在。//相对于过滤了 ..

2024-04-02 22:21:29 620

原创 OSPF协议

路由器之间先会建立协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告),相当于每一个路由器自我介绍(告诉别人我是谁以及相关信息)。每台路由器都会产生LSA,路由器将接受到的LSA放入自己LSDB(Link State DataBase,链路状态数据库),通过LSDB,路由器掌握了全网的拓扑。OSPF与IS-IS(链路状态路由协议)每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算,来选择最优路径。

2024-04-02 17:28:08 435

原创 CTF-SSH服务渗透

在对SSH服务渗透中,大部分情况是利用获取的私钥文件(,直接使用用户名和私钥文件登录靶场机器,个别情况进行暴力破解获取用户密码,通过用户名和对应用户登录靶场机器。CTF中 要特别注意 /tmp 数据缓冲目录 以及 /etc/crontab 设置定时执行的文件。

2024-04-02 17:26:43 837

原创 SSTI 服务器端模板注入(Server-Side Template Injection)

python中新式类(也就是显示继承object对象的类)都有一个属性__class__可以获取到当前实例对应的类,随便选择一个简单的新式类实例,比如 '' ,一个空字符串,就是一个新式类实例,所以 ''.__class__ 就可以获取到实例对应的类.找到我们想要的 `os` 所在的 `site._Printer` 类,它在列表的第七十二位, 即 `__subclasses__()[71]`。前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容,以 file 形式返回。

2024-03-31 22:30:46 629

原创 sql注入相关题目

2.输入 -1 union select databases--+ 没反应,可能存在过滤。information_schema.tables 或 .columns 用反引号。4.从数据库中查看文件内容,mysql提供了读取本地文件的函数load_file()在Switch中,case 里如果没有 break,则会继续向下执行 case。handler `表名` open as `a`;show columns from `表名`;(3)只要用户名密码正确,即可得到flag。联合注入与叠加注入区别。

2024-03-31 11:00:19 361

原创 ctf.show_web

是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。后端代码就是拿这个session的value值与我们输入的密码进行匹配, 由于这个value值我没解密出来, 所以这里干脆一点, 直接删除让变成空, 密码什么也不输, 也会是空, 空=空, 从而登录成功。2.然后上传a.txt,这样的话,每次调用 php 文件,都会自动包含 a.txt 文件,题目中要求文件的内容不能太长,会引起报错。可以使用命令,就可以用glob,比如,glob("*") 匹配任意文件。

2024-03-31 11:00:12 605

原创 Java--连续因子

1.1不算一个数的因子。

2024-03-30 13:59:10 72

原创 ctf.show_web11

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。密码为空,用 bp 抓包,去掉 session。

2024-03-29 16:12:30 380

原创 ctf.show_web10

因为加入with rollup后 password有一行为NULL,我们只要输入空密码使得(NULL==NULL)即可满足$password==$row['password']的限制成功登陆。(group by 后可以跟with rollup,表示在进行分组统计的基础上再次进行汇总统计)} // 把 $username 与 $password 过滤。} // 把 $regex 替换成空。} // 判断数据库是否连接成功。group by 和 with rollup;统计group by一个有多少个。

2024-03-29 15:20:20 896

原创 【ctf.show】--- md5

echo "登陆成功<br>";python dirsearch.py -u 网址 -e php。2.访问 robots.txt 文件。发现 robots.txt。发现 index.phps。3.访问 index.phps。16 字符长度的原始二进制。

2024-03-29 14:01:49 593

原创 数据库---PDO

port=3306;// 这里的空格比较敏感。$stmt->bindValue(':keywords','书');$stmt->bindValue(':title','漫画');// 返回受影响的行数。

2024-03-28 18:03:24 515

原创 蓝桥杯java---螺旋矩阵

【代码】蓝桥杯java---螺旋矩阵。

2024-03-25 22:27:02 291

空空如也

空空如也

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

TA关注的人

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