CTF
文章平均质量分 72
CTF个人题解
20_aw
这个作者很懒,什么都没留下…
展开
-
wife_wife-攻防世界
console.log(newUser.__proto__) //被污染,输出{c: 4},而__proto__没有被输出的原因是它为隐藏属性。//如果用户是管理员但邀请码不匹配,会将 user.isAdmin 设为 false,并返回一个错误的 JSON 响应。// 浅复制一个对象,第一个参数位是对象的内容,后面的参数位是多个对象内容叠加进去,进行复制出一个全新的对象。// 判断账号是否存在总对象的username里,若注册时输入的用户名相同,则输出用户名已存在。// post请求的路径。原创 2024-04-12 09:11:45 · 993 阅读 · 0 评论 -
shrine-攻防世界
全局变量 url_for()函数和get_flashed_messages()函数,能够访问config对象,config 对象就是Flask的config对象,也就是 app.config 对象。在调试模式下,应用会提供额外的错误信息,并可以实时重载代码。从环境变量中取出名为 'FLAG' 的值,并将其存储在 Flask 应用的配置中。对于黑名单中的每个词,生成一个 Jinja2 模板代码片段,该片段将这个词设置为。导入 Flask 框架,Flask 是一个轻量级的 Web 应用框架。原创 2024-04-09 00:36:20 · 731 阅读 · 0 评论 -
fakebook-攻防世界
换而言之,原SQL语句的查询结果为空,而我们通过union加入了我们构造的查询语句,让SQL语句有了查询结果,并且此查询结果符合页面渲染要求,所以页面正常显示了。并且由此得知,只要有data字段的对象序列,就可以成功渲染页面,其他字段并不是很重要。(页面中age和blog的值,显然也都是从序列化的对象里面得到的)通过之前查的数据username是字段2,猜测data是字段4按顺序来嘛。1' and 1=1 --+报错。1' and 1=2 --+报错。1 and 1=1 正常。1 and 1=2 报错。原创 2024-04-05 17:20:40 · 1742 阅读 · 0 评论 -
ics-05-攻防世界
input type="checkbox" name="sex" value="{{d.id}}" lay-skin="switch" lay-text="开|关" lay-filter="checkDemo" {{ d.id==1 0003?{ field: 'check', title: '设备开关', width: 85, templet: '#switchTpl', unresize: true }//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试。在这个例子中,它会使用。原创 2024-04-05 14:12:25 · 2038 阅读 · 2 评论 -
lottery-攻防世界
flag在这里要用钱买,这是个赌博网站。注册个账号,然后输入七位数字,中奖会得到相应奖励。githacker获取网站源码 ,但是找到了flag文件但是没用。bp 抓包发现api.php,并且出现我们的输入数字。根据题目给的附件源码,查看api.php。使用弱等于说明我们可以,用bool绕过。原创 2024-04-05 04:32:45 · 687 阅读 · 0 评论 -
NewsCenter-攻防世界
1' union select 1,2,3-- - 在这里# --+ 好像被过滤了没有回显。1' order by 4# 报错确定字段为3。1''和1' and 1=1#回显正常。1' order by 3# 正常。判断为单引号字符注入。原创 2024-04-01 17:43:41 · 323 阅读 · 0 评论 -
Web_php_unserialize-攻防世界
最好直接替换,不要自己去替换Demo前后有空格自己看不出来,$file 是私有成员序列化之后字符串首尾会多出两个空格 “%00*%00”,所以base64加密最好在代码中执行防止复制漏掉。将O:4:改为O:+4:绕过匹配,将字符串中的属性1改为大于它的正整数 绕过_wakeup。类的实例,其中包含了对象的属性和值。不包含对象或类的序列化字符串,则尝试对其进行反序列化。在序列化字符串中,这通常用于分隔对象或类的名称与后面的属性数据。在 PHP 的序列化字符串中,对象或类后面通常会紧跟一个冒号。原创 2024-03-22 20:11:29 · 1154 阅读 · 0 评论 -
Training-WWW-Robots-攻防世界
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。要注意的是,robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。提示fl0g.php。原创 2024-03-21 20:33:52 · 247 阅读 · 1 评论 -
view_source-攻防世界
题目提示右键被禁用直接fn+F12。原创 2024-03-21 23:13:02 · 141 阅读 · 1 评论 -
php_rce-攻防世界
该漏洞是由于ThinkPHP5在处理控制器传参时,没有对参数进行充分的过滤与验证,导致恶意用户可以通过提交恶意数据,构造出一个带有PHP函数的控制器方法,并通过URL参数的形式访问该方法,从而触发远程代码执行漏洞。远程命令/代码执行漏洞,简称RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。参数通常用于指定ThinkPHP框架中的模块/控制器/方法。服务器没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。查看 flag目录下的文件。原创 2024-03-26 20:39:07 · 666 阅读 · 1 评论 -
githacker安装使用
githack下载不了文件,换个工具!然后kail中进入GitHacker。原创 2024-04-03 00:26:48 · 501 阅读 · 0 评论 -
Web_php_include-攻防世界
secure_file_priv 这个变量被用于限制导入和导出的数据目录,比如 LOAD DATA 和 SELECT ... INTO OUTFILE 语句,以及 LOAD_FILE() 函数。MySQL 服务器在启动时,会检查 secure_file_priv 变量值,如果值不安全会在错误日志中写一个 WARNING 级别的日志。如果指定了目录,MySQL 会限制只能从该目录导入、或导出到该目录。下述使用data://伪协议,它让用户控制输入流,输入php代码,造成任意代码执行。原创 2024-03-25 22:33:08 · 1169 阅读 · 0 评论 -
unserialize3-攻防世界
序列化和反序列化是将数据结构或对象转换为可存储或传输的格式,以便在需要时可以重新创建它们的过程。总之,序列化像一种翻译,就像陌生人之间交流,我们会选择对方能听懂的语言,想方设法让对方能听懂,如果你和我熟悉,可能你和我之间有一套独特的交流方式,这对他人来说复杂的,我们转换成他人(另一个,不同的,不认识的平台)能听懂得的语言,最好是广泛应用的语言;非序列化传输:传输的数据简单数据类型(如整形,字符串等),或应用程序已经约定好了一种特定的数据格式,那么可以直接将数据以原始的格式进行传输,无需序列化。翻译 2024-03-21 22:39:08 · 67 阅读 · 1 评论 -
baby_web-攻防世界
响应标头里有flag{very_baby_web}访问index.php重定向到1.php。F12重新访问index.php。原创 2024-03-21 23:55:44 · 211 阅读 · 0 评论 -
supersqli-攻防世界
因为 H 对应 ASCII 码值为 72,e 对应 ASCII 码值为 101,l 对应 ASCII 码值为 108,o 对应 ASCII 码值为 111。根据提交方式:POST注入,GET注入,HTTP HEAD注入。根据有无回显:联合注入,报错注入,布尔盲注,延时注入。1' and 1=1 #没报错判断为单引号字符注入。其他注入:堆叠注入,宽字节注入,二次注入等。1' order by 3#报错。原创 2024-03-30 16:17:25 · 2144 阅读 · 1 评论 -
command_execution-攻防世界
具体来说,当前主机(发起ping命令的主机)会创建一个特殊的ICMP数据包,其中包含一个Echo请求信息,然后将其发送到目标主机的IP地址。通过ping命令,用户可以判断两台计算机之间的网络连接是否正常,如果计算机之间的网络连接正常,它们应该能够在规定的时间内收到和回复对方的数据包;当要把命令放在后台执行时,在命令的后面加上“&”。它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。原创 2024-03-26 10:36:10 · 1088 阅读 · 0 评论 -
weak_auth-攻防世界
题目题目提示弱口令随便输入提示登录admin直接bp爆破。原创 2024-03-21 23:26:00 · 218 阅读 · 0 评论 -
simple_php-攻防世界
再次解释举例内容:数字和字符串比较中,字符串转换成数字的过程中,会取字符串前面数字的值作为整个字符串转换成数字的值,比较“1admin”,转换成数字就是1,所以"admin"的话,因为字符串没有数字,只能转换成0了,所以if("admin"==0) 会是true。是一个严格的整数或浮点数,而不是以数字开头的字符串,那么可能需要使用更严格的验证方法,例如正则表达式或类型转换检查。的值来自 URL 的 GET 参数,没有进行适当的输入验证或清理,这可能导致潜在的安全风险,特别是如果。直接构造playload。原创 2024-03-21 23:44:46 · 1016 阅读 · 0 评论 -
xff_referer-攻防世界
题目bp抓包发到重发器题目提示xff和refererX-Forwarded-For(XFF)和Referer都是HTTP请求头字段,它们在Web通信中扮演着重要的角色。X-Forwarded-For(XFF)用于识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址。XFF的主要作用是告诉服务器当前请求者的最终IP。在一些情况下,攻击者可能会尝试伪造X-Forwarded-For字段来隐藏其真实IP地址,因此在使用XFF时需要谨慎验证其真实性。原创 2024-03-26 10:11:32 · 980 阅读 · 0 评论 -
Web_python_template_injection-攻防世界
在Jinja2模板引擎中,{{}}是变量包裹标识符。{{}}并不仅仅可以传递变量,还可以执行一些简单的表达式。__base__ 返回该对象所继承的基类 // __base__和__mro__都是用来寻找基类的。__subclasses__ 每个新类都保留了子类的引用,这个方法返回一个类中仍然可用的的引用的列表。__mro__ 返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。__globals__ 对包含函数全局变量的字典的引用。题目提示python模板注入。原创 2024-04-01 19:34:30 · 269 阅读 · 0 评论 -
very_easy_sql-攻防世界
(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)重新构造一个gopher的payload,带上这个cookie的内容再去访问use页面:由于不回显,所以选择时间盲注,用admin') and if(1,sleep(5),1)#进行测试,或者') and if(1,sleep(5),1)#都可。官方wp里写使用admin,admin弱密码账号,还说登录框是用来校验这个用户名和密码是否再数据库中存在的,所以还是没告诉是弱密码。构造ssrf语句实现从内部访问。原创 2024-04-02 10:40:22 · 441 阅读 · 0 评论 -
php2-攻防世界
文件是一种特殊的PHP文件,通常用于Web服务器中的网站根目录下,作为默认的主页文件名。它是PHP源代码查看器,会以类似HTML的方式显示PHP代码,并对代码进行高亮处理。index.phps文件的主要用途是提供给用户查看PHP代码,因为用户通常无法直接通过Web浏览器看到PHP文件的内容。当访问一个网站时,如果没有特别指定页面文件名,服务器会自动加载index.phps文件(如果存在)。注意,index.phps文件并非用于生产环境,而是更多用于开发、调试和共享代码的目的。的值进行URL解码。原创 2024-03-21 20:18:29 · 379 阅读 · 3 评论 -
web2-攻防世界
在 ROT13 中,字母 'a' 会变成 'n','b' 变成 'o',依此类推,直到 'm' 变成 'z'。然后,字母表会循环回来,所以 'n' 变成 'a','o' 变成 'b',以此类推。是 PHP 中的一个内置函数,用于反转字符串中的字符顺序。该函数接受一个字符串作为参数,并返回一个新的字符串,其中原始字符串的字符顺序被完全反转。例如,'A' 变为 'N','B' 变为 'O' 等。变量是累积结果字符串,它开始时可能是一个空字符串(如果之前没有定义过),然后随着循环的进行,它会不断附加新的字符。原创 2024-03-22 13:02:07 · 807 阅读 · 0 评论 -
warmup-攻防世界
文件名提示我们构造路径。原创 2024-03-26 18:10:34 · 577 阅读 · 0 评论 -
upload1-攻防世界
这段代码是一个简单的HTML页面,其中包含JavaScript代码,用于检查用户是否选择了一个图片文件(这行代码指定了页面的字符编码为UTF-8,确保页面可以正确显示各种字符。直接上传一句话木马,先来构造木马。左上角另存为php文件然后上传。一般会放在网站默认路径www下。前端验证直接禁用js。原创 2024-03-22 14:56:27 · 311 阅读 · 0 评论 -
fileinclude-宜兴网信办-攻防世界
直接上来就提醒flag在flag.php,而且题目提醒文件包含。本来想着直接将cookie:language=flag。但是不行,直接伪协议走起。原创 2024-03-20 13:54:07 · 218 阅读 · 1 评论 -
easyphp-江苏工匠杯
题目:源码分析这行代码将当前 PHP 文件的内容高亮显示。通常用于代码审计或教学$key1 = 0;$key2 = 0;这里定义了两个变量 $key1 和 $key2 并初始化为 0。这两个变量将用于后续的条件检查从 URL 的 GET 参数中获取 a 和 b 的值。...}else{如果 $a 存在,其整数值大于 6000000,且长度小于等于 3,则进入第一个条件块。否则,输出 "Emmm..." 并终止脚本。翻译 2024-03-19 22:09:27 · 53 阅读 · 1 评论 -
file_include(江苏工匠杯)
文件包含:开发人员一般会把重复使用的函数写到单个文件中,当需要使用这个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。那正常来说包含的文件是固定的、写死的就不会存在文件包含漏洞,但是这样的话又不够便捷,所以开发人员为了使代码调用更加灵活,就会将被包含的文件设置为变量,用来进行动态调用。但正是由于这种灵活性,允许用户从客户端提交一个变量值来作为文件包含的变量值,当这个值是段恶意代码时,并且服务端又没有对用户的输入进行一个很好的过滤,就会造成文件包含漏洞。Base64编码的内容。翻译 2024-03-19 19:34:25 · 127 阅读 · 1 评论 -
ics-06-攻防世界
此处若直接点击攻击会报错必须先点击Hex重新回到十进制,才可成功。cookie提示cookie.php但是访问报错,只能爆破id了。id为2333时响应包长度不同且cyberpeace得到响应。找到匹配响应包的匹配处加入flag、cyberpeace。最好现在去加入过滤,匹配响应包的数据,以便找到flag。F12和页面源代码没有反应。payload处类型选择数字。点击多处只有报表中心有反应。在id处添加爆破位置。从1-10000间隔1。原创 2024-03-21 19:36:04 · 262 阅读 · 1 评论 -
cookie-攻防世界
那么问题来了,总不能每一次客户端的请求都要证明自己是自己吧,所以这里就要引入cookie的概念,用cookie来管理用户的状态,通过cookie让服务端知道这次客户端的请求到底是那个用户发出的,以及当前用户的其他的状态等等。在Web开发中,Session通常用于跟踪用户的活动状态,保存用户的相关信息,如登录状态、购物车内容等。浏览器会存储Cookie,并在之后的请求中将其发送回服务器。因此,在生成Cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护Cookie的风险,增强网站的安全性。原创 2024-03-21 15:47:34 · 651 阅读 · 1 评论 -
easyupload-CTF-攻防世界
user.ini文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。如果你的连接路径是http://x.x.x.x:端口/uploads/shell.jpg这样的话,是不对的。正确的连接url地址应为http://x.x.x.x:端口/uploads/index.php (请回想.user.ini文件及auto_prepend_file方法)左上角文件另存为.user.ini文件 后上传。原创 2024-03-20 22:10:07 · 653 阅读 · 1 评论 -
robots-Cyberpeace-n3k0-攻防世界
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。要注意的是,robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。题目提示robots协议。原创 2024-03-21 14:11:14 · 231 阅读 · 1 评论 -
disabled_button-攻防世界
题目右键查看源代码有个链接进去搜索flag无果题目提示前端知识可能陷入的误区:打开浏览器任意一个页面,右键单击页面有两个很相似的选项:“查看网页源代码(CTRL+U)”和"检查(审查元素 F12或者CTRL+SHIFT+I)查看网页源代码”的代码内容是服务器发送到浏览器的原封不动的源代码,不包括页面动态渲染的内容;“审查元素”包括源代码+js动态渲染的内容,即最终展示的html内容F12查看js代码由于题目提示按键不能按直接用左上角的箭头审查按键点击...的按键展开代码。原创 2024-03-21 15:10:13 · 352 阅读 · 1 评论 -
PHP反序列化——江苏工匠杯
2. `if (in_array($this->method, array("ping"))) {...}`:这里使用`in_array()`函数检查`$this->method`是否在数组`array("ping")`中。构造函数接受两个参数`$method`和`$args`,并将它们分别赋值给类的属性`$method`和`$args`。`和`$this->args = $args;`:这两行声明了类中的两个私有属性`$method`和`$args`,这些属性只能在类的内部访问。进行正则表达式匹配。翻译 2024-03-19 15:56:23 · 48 阅读 · 1 评论 -
backup-攻防世界
另外,有些备份文件可能并不具有特定的后缀名,而是通过文件名、存储位置或其他方式来进行标识。因此,在查找或管理备份文件时,除了查看文件后缀名外,还应考虑其他因素。除了上述后缀名外,还有其他一些特定的程序或系统可能会使用自己的备份文件后缀名。需要注意的是,备份文件的后缀名可能因不同的软件、操作系统或应用程序而有所不同。最后,为了确保数据的安全性和完整性,建议定期检查和验证备份文件的可用性。同时,对于重要的数据,应考虑使用多种备份策略和方法,以防止数据丢失或损坏。直接拼接index.php.bak。原创 2024-03-21 18:06:56 · 310 阅读 · 1 评论 -
get_post-攻防世界
在Body中form-data修改key和Value。F12 找到网络刷新找到刚刚提交的a=1。火狐中hack bar中提交b=2。a=1 b=2分别加上去。发到重放器右键修改请求方法。也可以在IE中重新编辑发包。注意加的位置不能搞错。修改get为post。原创 2024-03-21 14:41:30 · 174 阅读 · 1 评论 -
fileclude-CTF-攻防世界
file1中用php://filter流来读取flag.php文件,同时用convert.iconv[]过滤器将flag编码输出,没有用convert.base64-encode因为出来的会是一串base64字符串,还要解密。file2中利用data://协议构造数据流,将hello ctf 当做php文件执行,直接传参行不通,因为file_get_contents是将文件中的数据提取我为字符串。对于大文件,应该考虑使用其他方法,如逐行读取文件或使用流(stream)处理。如果变量存在并且不是 NULL,原创 2024-03-20 13:02:06 · 813 阅读 · 1 评论