- 博客(55)
- 收藏
- 关注
原创 ctfshow web-76
开启环境:c=?><?} exit(0);?exit();c=?><?} exit(0);?exit(0);}exit(0);
2024-02-03 19:53:53
563
原创 ctfshow web-77
发现 flag36x.txt 文件。同时根目录下还有 readflag,估计需要调用 readflag 获取 flag。访问 1.txt 即可获取 flag。先直接用伪协议获取 flag 位置。
2024-02-03 19:31:21
673
原创 ctfshow web72
php 也是可以的。eval() 里的语句可以视为在当前 php 文件里加了几条语句,这些语句必须是完整的,即必须以 “;> ” 结尾来结束语句,但是eval里的 “?> ” 不会闭合当前 php 文件。因为 ini_set() 也被限制了,所以 open_basedir() 不能用 ini_set() 重新设置绕过。本题设置了 open_basedir(),将php所能打开的文件限制在指定的。使用 php 伪协议。
2024-01-29 19:42:41
774
原创 ctfshow web71
ob_end_clean():清除缓冲区的内容,并将缓冲区关闭,但不会输出内容。preg_replace():执行一个正则表达式的搜索和替换。ob_get_contents():得到输出缓冲区的内容。exit():输出一个消息并且退出当前脚本。
2024-01-27 14:51:24
190
原创 ctfshow web75
在 MySQL 中,load_file(完整路径) 函数读取一个文件并将其内容作为字符串返回。# 创建 PDO 实例, 连接 MySQL 数据库。先直接用伪协议获取 flag 位置。
2024-01-27 14:39:39
592
原创 VMware虚拟机安装linux
7. 命名虚拟机,可根据自己要求更改,也可以默认,点击。,找到并选择刚才下载好的Linux文件,最后点击。24. 选择位置,选择中国所在的位置,点击。11. 选择I/O控制器类型,默认,点击。4. 选择虚拟机硬件兼容性,默认 点击。21. 更新和其他软件。29. 选择登录用户,点击刚才设置的用户。9. 分配此虚拟机的内存,默认,点击。25. 设置用户,自行填写,然后点击。记住下载到的路径,后面需要用到!12. 选择磁盘类型,默认,点击。14. 指定磁盘容量,默认,点击。15. 指定磁盘文件,默认,点击。
2024-01-10 10:54:58
589
原创 NSSCTF 2048
修改score>20000或者直接运行:(控制台输入)按F12查看网络,看到2048.js文件,打开。这道题本身就是一个好玩的游戏,哈哈!
2024-01-08 09:22:47
628
原创 NSSCTF hate eat snake
将网页另存本地,搜索网页和snake.js是否包含flag文本,没有发现。搜索snake.js中的alert关键字,在295行末尾搜索到一个输出。注释或者删除自增代码,重玩游戏就不会加速了,等待60秒后拿到flag。直接替换成61,就可以让程序输出flag了。全文搜索speed,在第237行发现自增代码。审计snake.js。第7行定义了游戏的速度。
2024-01-05 09:23:54
502
原创 NSSCTF babyphp
intval:通过使用指定的进制 base 转换(默认是十进制),返回变量 value 的 int 数值。intval() 不能用于 object,否则会产生 E_WARNING 错误并返回 1。弱判断下,0e开头的数等于0,所以使两端的md5值都为0e开头即可。先过第一个if,需要a不含数字而且intval取整数。第三个if,由于md5函数无法处理数组,会返回nul。第四个if,需要传入值是字符串且md5值相等。传入数组就能过掉第一个if。
2024-01-05 09:06:58
465
原创 NSSCTF websign
直接在url前加view-source:得到页面源码取出flag。但是我们发现右键被禁用了, ctrl+U也被禁用了。提示我们看源码,那就看。
2024-01-04 09:17:30
416
原创 NSSCTF EasyP
file=1.php 显示:/pikachu/index.php?file=flag.php/1.php 显示:1.php。绕过:preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF'])例子:127.0.0.1/pikachu/index.php 显示:/pikachu/index.php。1.$_SERVER[‘PHP_SELF’] :正在执行脚本的文件名。再绕过:isset($_GET['show_source']))利用: [ (空格) + .
2024-01-04 09:13:36
1023
原创 NSSCTF Http pro max plus
代理服务器地址是Clash.win ,请求头写 via: Clash.win。执行显示 You are not from pornhub.com!请求头写 x-forwarded-for: 127.0.0.1。执行显示 借一步说话—>> /wtfwtfwtfwtf.php。请求头写 referer: pornhub.com。进入sejishikong.php 获得f14g。请求头写 user-agent: Chrome。进入wtfwtfwtfwtf.php。执行显示 用Chrome浏览器啊!
2024-01-03 14:04:42
1130
原创 NSSCTF Follow me and hack me
开启环境:他怎么要求的,我们就怎么来,但是提交按钮这里是用不了的,所以我们可以借助第三方插件,这里我用的是hackbar插件:就按上面的点击执行:直接秒了!
2024-01-03 09:20:42
528
原创 CTFshow web入门web128-php特性31
call_user_func会利用_()将get_defined_vars返还出来然后再有一个call_user_func来调用get_defined_var。() 是gettext()的拓展函数,开启text扩展get_defined_vars — 返回由所有已定义变量所组成的数组。当正常的gettext(“get_defined_vars”);时会返还get_defined_vars。为了绕过正则,_()函数和gettext()的效果一样,所以可以用_()函数代替gettext()函数。
2024-01-03 09:08:24
782
原创 CTFshow web入门web127-php特性30
a=2,就会变成$a=2,这里ctf_show有个_需要构造,前面说过php中变量名只有数字字母下划线,被get或者post传入的变量名,如果含有空格、+、[则会被转化为_,这里空格没有被ban,所以我们就使用空格,payload为。函数从数组中将变量导入到当前的符号表,使用数组键名作为变量名,使用数组键值作为变量值。
2024-01-03 09:05:53
616
原创 ARL安装
顺序:入站规则---->新建规则---->端口---->下一页---->5003---->下一页---->下一页---->下一页---->名称:自己随意---->完成。防火墙:关闭所有防火墙,打开高级设置,将入站规则新添端口:5003。开始步骤前请将魔法关闭,否则可能会出现连接错误等问题!版本:centos7.3(后续其他版本设置好会更新)端口:5003,1/65535,80,22。至此我们的服务器配置就OK了!到这里防火墙就准备完毕了!准备工作:需要一个服务器。到此所有的工作就结束啦!
2024-01-02 09:55:20
520
原创 NSSCTF sql
位数长度不足 使用截断函数进行绕过,substr,right,REVERSE 被过滤(测试出来的),只能用mid截取,因为回显只能有20个,所以20,一组截取。wlmm=1'order/**/by/**/3%23正常。wlmm=1'order/**/by/**/4%23报错。wllm=-1'or 1=1%23出现过滤。测试,空格用**替代, 等号用like替代。
2023-12-30 10:18:39
537
原创 CTFshow web入门web125-php特性28
初始化界面:通过分析代码可知:var_dump()被过滤,但是还有var_export()函数,该函数与var_dump函数功能类似:
2023-12-18 09:01:00
131
原创 CTFshow web入门web82-文件包含5
因为有die(与exit意思一样),导致即使我们成功写入一句话,也执行不了(这个过程在实战中十分常见,通常出现在缓存、配置文件等等地方,不允许用户直接访问的文件,都会被加上if(!$file是我们我们可控的协议流,我们使用base64编码,在解码时去掉退出代码中不支持的字符,变为phpdie,在后面加上aa使得能正常解码phpdieaa(base64编码解码特性,4字节一组)file_put_contents(urldecode($file), "<?php die('大佬别秀了');
2023-12-06 11:48:29
881
原创 CTFshow web入门web87-文件包含10
把data协议也ban了,换一种方式,不直接通过当前页面进行内容的传递,使用日志包含。通过wappalyzer查看网页的banner信息,发现是nginx服务器。本题的路径是/var/log/nginx/access.log.通过抓包在UA头中插入payload,文件包含日志使代码执行。通过file读取日志,发现内容为请求行、UA头、IP地址。
2023-12-01 08:32:05
387
原创 java的简单笔记
JDK(Java Development Kit,Java开发工具包) ,是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment),一堆Java工具(它是整个Java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行Java字节码文件的虚拟计算机。JRE(Java Runtime Environment Java运行环境) ,是 JDK 的子集,也就是包括 JRE 所有内容,以及开发应用程序所需的编译器和调试器等工具。2.Java语言跨平台的原理。
2023-11-30 14:28:18
51
原创 CTFshow web入门web79-文件包含2
初始化界面:通过分析得知,此处对php进行过滤,因此此处我们使用date伪协议,data协议进行base64转码:?
2023-11-28 11:13:52
204
原创 CTFshow web入门web78-文件包含1
的攻击数据读取文件,拿到各种文件的。通过分析,此处未进行任何的过滤。利用Filter机制,构造。将flag提交结束!
2023-11-28 09:07:34
184
原创 ctfshow文件包含-附件
服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行。在包含的过程中如果出现错误,会直接报错并退出程序的执行。和require函数相同,但只包含一次。和include函数相同,但只包含一次。
2023-11-28 08:58:41
62
原创 CTFshow web入门web102-php14
call_user_func() 函数用于调用方法或者变量,第一个参数是被调用的函数,第二个是调用的函数的参数 file_put_contents($v3,$str)是将$str的内容写入并保存为$v3(第一个参数是文件名,第二个参数是内容)这里v2和v3都要是数字,substr取v2[2:],v2开头可以是00来作为开头,然后v1(v2[2:])。is_numeric() 用于检测是否为数字或数字字符串,如果指定的变量是数字和数字字符串则返回true,否则返回false。首先v2是shell,先整个。
2023-11-28 08:24:01
201
原创 CTFshow web入门web100-php12
is_numeric是用于检测变量是否为数字或数字字符串,后面有 eval 函数,明示需要进行命令执行 v3需要有分号,v2不能有分号,这样的话v0就 = $v1 and FALSE and FALSE,但是php的运算具有优先级,如$a = true and false;,因为等号大于and,所以这里赋值为$a = True。可以把中间的(‘ctfshow’)注释掉,办法有很多种get_defined_vars()查看所有变量。,然后和后面的进行逻辑运算,并不会修改。and 的优先级是比等号要低的;
2023-11-23 14:24:47
165
原创 CTFshow web入门web98-php10
如果存在get传参,则把post传参地址给get,可以简单理解为post覆盖了get。的值为flag,就读取文件,也就是输出flag。通过分析可知,此处使用的是三目运算符,
2023-11-23 10:25:35
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1