- 博客(422)
- 收藏
- 关注
原创 基于Cardinal的AWD攻防平台搭建与使用以及基于docker的题目环境部署
正常 ./ 执行我们需要一直在这个终端挂着,否则Cardinal 就会断掉,靶场页面也就无法访问。因为我们的 mysql 数据库下还没有 test 这个用户,我们需要手动创建并赋予权限 ,test 这个用户相当于是我们平台的一个后台管理账户,因此这里直接给 root 权限。这样,即使我们关闭终端,Cardinal 也会一直处于运行状态。。
2024-06-27 13:21:53 1614
原创 利用ngrok实现内网穿透(全网最详细教程)
准备工具:1、用于在本地搭建网站2、用于将自己的本地端口暴露到公网上,从而实现内网穿透,注意:我前面提到过的闪退就是在这一步发生的,我的解决方法是重装ngrok并以管理员身份运行。至此,我们已经实现了内网穿透,通过将我们的本地端口暴露在特定域名地址的公网上,进而从公网访问到了内网的东西。
2023-11-26 13:36:51 9140
原创 CTF靶场搭建及Web赛题制作与终端docker环境部署
这种情况意思是docker需要我们指定下载镜像的版本号。哈喽大家好!我是Myon,趁着我的云服务器还没过期,这次给大家出一期很详细的CTF比赛的靶场搭建以及关于Web赛题的制作与docker环境的部署教程,由于本人能力有限,也只能给大家讲一些基础简单的东西,欢迎大家在评论区互相交流学习,希望通过这篇博客大家能学到一些新东西,也期待大家的关注和支持!
2023-11-22 19:26:29 6715 4
原创 PHP特性之CTF中常见的PHP绕过
一、关于md5()和sha1()的常见绕过1、使用数组绕过2、 使用特殊字符串绕过二、strcmp绕过三、switch绕过四、intval绕过
2023-07-18 14:32:22 6244 1
原创 主动扫描-Nmap-端口、系统、服务扫描
一、使用Nmap进行端口扫描① SYN扫描② Connect扫描③ UDP扫描④ 端口扫描范围的确定二、使用Nmap扫描目标系统三、使用Nmap扫描目标服务3、Nmap的完善四、将Nmap的扫描结果保存为XML文件五、对Web服务进行扫描2、Web服务器的软件组成③ 服务器应用程序④ 操作系统3、以DVWA为目标的web服务扫描① dirb内容扫描 ② dirsearch内容扫描③ whatweb网络指纹识别
2023-03-25 21:08:01 11769
原创 Kali Linux 的常用命令
Kali Linux 的常用命令 1、与文件目录相关的命令 2、文件查看命令 3、网络相关命令 4、进程控制命令 其他常用命令 hosts文件 脚本编写
2023-03-12 20:07:31 9507 2
原创 ctfshow-web入门-sql注入(web231-web236)update 注入
使用 mysql.innodb_table_stats 和 mysql.innodb_index_stats 代替,它们是 MySQL 内部的系统表,用于存储 InnoDB 引擎相关的统计信息,内容与 information_schema.tables 类似,也可以用来获取数据库中的库名和表名,这两个表都包含了 database_name 和 table_name 字段。数据库名还是 ctfshow_web,后面的密码是我们输入的 111 经过 md5 加密后的内容。
2024-08-24 11:49:12 677
原创 python 安装库 pip install 永久替换国内源及Configuration file contains invalid cp936 characters in C:\Users的解决办法
但是如果我们希望直接 pip install 库名,而不用每次都追加 -i 参数,那么就需要在当前用户的目录下再新建一个名为 pip 的目录,在 pip 目录下新建配置文件 pip.ini。注意看一下你的 pip.ini 内容中是否有中文的注释,将注释内容去掉,仅保留英文内容。看了下网上很多是放在这儿,反正你放在当前用户的下一层目录即可。
2024-08-20 10:11:50 301
原创 ctfshow-web入门-sql注入(web224-web230)文件类型注入、routines存储过程与函数状态、handler语句、预处理prepare+execute
也就是将表名 ctfshow_user 改为了 ctfshow_flagasa,将字段名 username 改为 flag,之后我们就可以使用万能密码 1' or 1=1# 查出 flag。PREPARE 语句准备好一条 SQL 语句,并分配给这条 SQL 语句一个名字供之后调用,通过EXECUTE 命令执行,最后使用 DEALLOCATE PREPARE 命令释放。
2024-08-19 18:54:44 1115
原创 ctfshow-web入门-sql注入(web221、web222、web223)limit 注入与 group 注入
这里是 get 传参并且进行了 URL 解码,如果拼接方式是加号会导致服务器错误的解析为空格,从而无法识别,没有回显,需要对加号进行 URL 编码再传入,即%2b 。接下来就可以开始写脚本了,在上一题的基础上改。这里用的还是原始方法 substr,当然也可以用 like 通配,或者用 regexp 正则匹配,原理一样,我就不再过多测试了。
2024-08-17 02:11:14 868
原创 ctfshow-web入门-sql注入(web216-web220)时间盲注结束
跑出结果一样,那就说明是那个判断时间的问题,因为一开始在 hackbar 测试,那个 payload 大概是 3s,结果后面变成了只有 1s 左右,因此 1s 和 0.5s 都可能会导致结果不准确,这里主要还是设置好一个判定时间,改成 0.8s 就比较准确了,具体多少取决于你实际题目环境。前面的脚本是用 if 语句进行判断,这里写一下 try 语句,不用获取响应消耗的时间,而是我们手动设置一个请求超时的时间,因为前面的延时大概是 3s ,这里超时时间设小一点,为 1.5s。
2024-08-14 22:49:57 1226
原创 ctfshow-web入门-sql注入(web211-web215)系统练习sqlmap的使用+开始时间盲注
对于 mysql 数据库,sqlmap 的 --os-shell 参数就是写入两个 php 文件,其中一个是提供文件上传功能的文件,之后再上传一个是用于进行命令执行的文件,也就是最后反弹给我们的 shell。当然,对于 --os-shell 能利用也是有一定条件的,一般需要是高权限数据库用户,并且需要知道网站的绝对路径,具有写入文件的权限,还有一些其他条件。于是又再跑了一次,这回正常了,可能是猜到 6 的时候请求响应还是耗时超过了 2s,以至于没有去判断字典后面的 h 而造成的误判。
2024-08-12 03:16:13 1093
原创 ctfshow-web入门-sql注入(web206-web210)系统练习sqlmap之tamper的使用与编写
我们对查询的 payload 进行逆向处理,先反转,再 base64 加密,再反转,再 base64 加密,传入查询后,经过题目的解密和反转处理,最终又恢复到我们正确的 payload 实现注入。查询语句里新增了括号,我们注入也需要将其闭合掉,就像我们闭合单引号那样,对于 sqlmap 它会自动对闭合点进行测试的,常见的就是单引号、双引号、单引号加括号或者双引号加括号。拿下,flag:ctfshow{549d46ab-3974-43a6-ac07-cbcc41357083}
2024-08-11 01:06:06 977
原创 ctfshow-web入门-sql注入(web201-web205)系统练习sqlmap的使用
开始系统练习sqlmap的使用。发现在访问 index.php 前都会先访问 getToken.php追加 --safe-url 参数设置在测试目标地址前访问的安全链接,将 url 设置为 api/getToken.php,再加上 --safe-preq=1 表示访问 api/getToken.php 一次:
2024-08-09 06:47:19 1320
原创 ctfshow-web入门-sql注入(web196-web200)堆叠注入
这里把 create 和 drop 都过滤了,那么我们直接用 insert 插入来覆盖 pass 和 username 的值。其中 $row[0] 表示从数据库查询结果中提取的某一行的第一个字段值,我们可以使用 select 来设置$row[0] 的值,再提交我们设置的 password 满足两者相等,payload:还是堆叠注入,显示过滤了 select 实际并没有。
2024-08-08 23:29:55 454
原创 ctfshow-web入门-sql注入(web191-web195)
我们不指定第三个参数,就可以实现和 left 和 right 一样的效果。密码只能是数字,过滤了空格,采用反引号包裹绕过,题目已经说了是堆叠注入,这里直接修改用户名和密码:
2024-08-07 23:50:44 953
原创 ctfshow-web入门-sql注入(web186-web190)
在上一题中我们提到了,使用 true+true 的方法构造出数字比如 true+true+true 就可以构造出 3,再使用 char 函数将数字转为对应的 ASCII 字符,最终实现我们 payload 的转换。在 SQL 中,数字和字符串的比较是弱类型的,如果在比较操作中涉及到字符串和数字,SQL 会尝试将字符串转换为数字,那么只要字符串不是以数字开头,比较时都会转为数字 0。拿到 flag:ctfshow{e54220e0-e81f-4e0e-ad32-0bbbbdd43d83}
2024-08-06 04:26:07 1139
原创 ctfshow-web入门-sql注入(web181-web185)
过滤字符:(1)空白字符:空格 ( )、水平制表符 (\x09)、换行符 (\x0a)、垂直制表符 (\x0b)、换页符 (\x0c)、空字符 (\x00)、回车符 (\x0d)、不换行空格 (\xa0)(2)符号:星号 (*)、井号 (#)(3)关键词(不区分大小写):file、into、select1'--%0c1'||1--%0c拿到 flag:ctfshow{bef90a74-9ae2-4c76-8111-0ea0406f120b}
2024-08-04 15:26:20 839
原创 ctfshow-web入门-sql注入(web176-web180)
闭合后简单判断了下字段数是 3测试联合查询注入,存在关键字的过滤,包括 select 和 union(后面经过测试实际只过滤了 select)回显成功得到表名为 ctfshow_user题目中要求 username!='flag'拿到 flag:ctfshow{4dacb0f6-4795-43f4-8b76-d300234e40b6}
2024-08-03 19:41:25 660
原创 ctfshow-web入门-sql注入(web171-web175)
这里只出了一个 id,因为换行导致我们误判为到了最后一个字符,因为我们的字典里只包括数字、小写字母和下划线,因此字符没找到,便跳出外层循环结束了代码。判断一下这次又是三个字段数了,因为还是对输出过滤了 flag,所有我们还是不查用户名,用占位符占位即可。接下来我们先判断下它数据库名的长度,这个其实可以通过 burpsuite 的攻击模块爆破的,没关系,我们这里手写一遍,也锻炼下我们 python 的能力。
2024-07-31 22:57:22 1175
原创 ctfshow-web入门-php特性(web147-web150_plus)
:匹配字符串的开头。$:匹配字符串的结尾,确保整个字符串符合规则。[a-z0-9_]:表示允许小写字母、数字和下划线。*:匹配零个或多个前面的字符。/i:忽略大小写。s:匹配包括换行符在内的所有字符。D(PCRE 特有):美元符号 $ 仅匹配字符串的实际末尾,不匹配结尾的换行符。这里只需要让 $ctfshow 里面有其他字符即可满足 if 判断。在 PHP 中,命名空间(namespace)提供了一种组织代码的方式,可以避免类、函数和常量名称的冲突。
2024-07-27 15:54:21 1371
原创 ctfshow-web入门-php特性(web142-web146)
要求 v1 是数字,之后将 v1乘以 0x36d(即16进制的869)五次,然后将结果转换为整数并赋值给变量 $d,使用 sleep 函数使程序休眠 $d 秒,最后读取flag.php文件的内容并输出到浏览器。在 web141 的基础上新增过滤加减、取反、或,我们可以使用乘除号代替加减号,取反、或不能使用我们还可以采用异或运算构造 payload。这里过滤的是异或,我们采用或、取反都可以,加减乘除都被过滤,可以用位或运算符 |。这里我们先构造 ("system")("ls")
2024-07-27 11:44:51 891
原创 ctfshow-web入门-php特性(web137-web141)
查看源码:拿到 flag:ctfshow{dd387d95-6fbe-4703-8ec5-9c8f9baf2bb5}在 php 中,-> 用于访问类的实例成员(属性和方法),我们需要先实例化类,然后通过实例对象来调用其成员;而 :: 用于访问类的静态成员(静态属性和静态方法)和常量,静态成员属于类本身,而不是任何具体实例,因此不需要实例化类即可调用它们。
2024-07-26 20:35:55 1251
原创 ctfshow-web入门-php特性(web132-web136)
mt_rand(1, 0x36D) 会生成一个 1 到 877(十六进制0x36D)的随机数,因此 $code === mt_rand(1,0x36D) 这个条件很难满足,因为每次都会生成一个新的随机数,$code 很难与这个随机数相等。tr -cd 'a-zA-Z0-9-' 这个命令会删除所有不是字母、数字、减号的内容,原本我想将大括号也保留,但是试了下不行。flag 分为了两段,flag1 和 flag2,拼接起来,字母都改成小写字母,添加上大括号即可。
2024-07-25 17:09:47 1420 1
原创 ctfshow-web入门-php特性(web127-web131)
将 $flag 变量进行 MD5 哈希运算,并将结果赋值给 $ctf_show。获取当前请求的查询字符串(query string),查询字符串是 URL 中位于问号 (?) 之后的部分,通常包含一个或多个参数和值。之后对查询字符串采用正则匹配过滤掉了一些符号,符合要求则会将 $_GET 数组中的键值对作为变量导入到当前的符号表中。换句话说,extract($_GET);会将 URL 查询参数中的每个键值对转换成同名的变量。最后要求 $ctf_show==='ilove36d' 就会输出 flag。
2024-07-17 14:40:10 703
原创 ctfshow-web入门-php特性(web123、web125、web126)
post 传入 CTF_SHOW 和 CTF_SHOW.COM 确保 isset($_POST['CTF_SHOW']) && isset($_POST['CTF_SHOW.COM']) 这部分条件为真,fun=eval($a[0]) 将 eval($a[0]) 的代码传递给 $c。最后 判断 if($fl0g === "flag_give_me"),因为 $fl0g 被正确地设置为了 'flag_give_me',所以这个条件为真,因此,echo $flag;
2024-07-16 16:27:37 1213
原创 关于任务栏图标变白的原因及解决方法(以 QQ 为例)
如果你也是因为移动改变了程序所在位置,那么这里的两个路径应该是不正确的,将目标和起始位置的路径改成你程序移动后的正确路径,修改好之后点击确定。当然,其实你也可以删掉原来的快捷方式,来到程序移动后所在位置,重新创建快捷方式,这样就可以确保上面说的两个路径是正确的,就不用手动修改了。如果你没有删掉原来的变白的快捷方式,将鼠标悬停在空白图标上,右键,继续悬停到 QQ 上,继续右键,之后点击属性。确保你上面的那个路径下的东西确实存在,比如我这里就是 QQ.exe 的路径。如下图所示,qq 图标变白了,
2024-07-16 13:51:44 1075
原创 ctfshow-web入门-php特性(web109-web115)
php 中查看目录的函数有:scandir()、golb()、dirname()、basename()、realpath()、getcwd() ,其中 scandir()、golb() 、dirname()、basename()、realpath() 都需要给定参数,而 getcwd() 不需要参数,getchwd() 函数会返回当前工作目录。对于 trim() 函数会去除空格( %20)、制表符(%09)、换行符(%0a)、回车符(%0d)、空字节符(%00)、垂直制表符(%0b),
2024-07-15 17:01:50 1073
原创 ctfshow-web入门-php特性(web104-web108)
需要传入的 v1 和 v2 进行 sha1 加密后相等。解法1:这里都没有判断 v1 和 v2 是否相等,我们直接传入同样的内容加密后肯定也一样。?v2=1post:v1=1拿到 flag:ctfshow{bd4eea6b-872d-462c-b8f2-20f48d3ee652}解法2:对于 php 强比较和弱比较:md5(),sha1() 函数无法处理数组,如果传入的为数组,会返回 NULL ,两个数组经过加密后得到的都是 NULL ,也就是相等的。?
2024-07-14 15:36:54 825
原创 ctfshow-web入门-php特性(web100-web103)is_numeric 函数绕过
我们只需要构造输出 ctfshow 这个类即可。虽然逻辑运算符的优先级比赋值运算符要高,但是如果逻辑运算符和赋值运算符连用时,往往允许存在先进行赋值运算,后再进行逻辑运算的顺序。需要满足 if 语句才会进入后面的判断,因此要求 v0 为 1,这里用的是 and,所以只需要满足 v1是数字即可。要求 v2 中不能有分号,v3 中需要有分号。如果上述要求都满足,则会调用 eval 函数。代入 eval 函数实际就是执行:");
2024-07-13 17:10:44 1084
原创 ctfshow-web入门-php特性(web96-web99)
如果 $_GET 不为空,也就是说我们进行了 get 传参,那么就会通过 $_GET = &$_POST 将 $_POST 的引用赋值给 $_GET,引用赋值导致两个变量指向同一个内存地址,而 $_POST 变量内容改变会影响 $_GET 变量的内容;$_GET 变量是一个数组,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值,表单域的名称会自动成为 $_GET 数组中的键。isset()函数用于检查变量是否设置,如果设置了,则 id=$_GET['id'],否则 id=1。
2024-07-13 11:40:41 1099
原创 ctfshow-web入门-php特性(web89-web95)intval 函数绕过
如果第一次匹配成功,再次使用正则表达式匹配 $a 是否等于字符串“php”,但这次只有不区分大小写,是单行模式,不会匹配多行,如果第二次没有匹配成功就会输出 flag。也就是说,如果 num 中不包含数字 "0" 就会终止程序,但是还有一种情况,如果这个 0 出现在开头,虽然是找到了有 0 这个字符,但是返回位置为 0 ,if (!== 是相等运算符,在进行比较时,会先将字符串类型转化成相同,再比较,比如比较一个数字和字符串或者比较涉及到数字内容的字符串,字符串会被转换成数值并按照数值来进行比较。
2024-07-12 11:47:12 817
原创 ctfshow-web入门-文件上传(web166、web167)&(web168-web170)免杀绕过
查看源码,前端只让传 zip上传 zip 成功后可以进行下载随便搞一个压缩包,使用记事本编辑,在其内容里插入一句话木马:上传该压缩包,上传成功后点击下载文件,使用 burpsuite 抓包:我这里木马内容用的 request ,就在 get 里执行 ls 没什么问题,但是读取 flag 时识别有点问题,最好使用 post 请求,因此将请求方法改为 post ,将 file 的内容还原到上面。
2024-07-11 16:21:08 1026
原创 ctfshow-web入门-文件上传(web164、web165)图片二次渲染绕过
web164 和 web165 的利用点都是二次渲染,一个是 png,一个是 jpg二次渲染:网站服务器会对上传的图片进行二次处理,对文件内容进行替换更新,根据原有图片生成一个新的图片,这样就会改变文件原有的一些内容,我们需要将一句话木马插入到数据不会被改变的位置,确保一句话木马不会受到二次渲染的影响。
2024-07-09 15:43:00 1410
原创 ctfshow-web入门-文件上传(web161、web162、web163)远程包含
后面又去 b 站看了下视频,发现它远程包含的就是一个 php 文件,而我这里包含的 shell 是一个纯文本的东西,我最开始以为是将这段内容包含进了 index.php 的代码里,所以就没有考虑它不是 php 后缀是否可以正常解析的问题。后面问了群里的师傅,说用 flask,我原本用的是 Apache 搭的服务,重置了服务器,Apache 和 php 其实都是刚下的,可能还需要配置点什么吧,不清楚,因此我们将木马放到 flask 服务上去。那么我们上传的文件名就不使用后缀即可:这里以 test 为例。
2024-07-09 14:59:30 1380
原创 阿里云 Ubuntu 开启允许 ssh 密码方式登录
再次进行上述操作,修改配置文件允许使用密码登录,是没有问题的,可以保存。在阿里云控制台重置实例密码后无法使用密码进行 SSH 连接登录。使用一开始我们重置的 root 密码进行 ssh 登录。这里进来是 admin 普通用户权限。先使用其他用户登录到服务器。
2024-07-08 10:35:25 551 1
原创 ctfshow-web入门-文件上传(web151-web160)
试了下前端只能传 png 后缀的将一句话木马改成 png 后缀,上传后用 burpsuite 抓包绕过前端检测后,改回 php 后缀,发包拿到 flag:ctfshow{e3bd0332-4d5f-4255-941f-a2e6095c4f17}我们还可以直接改它前端验证的代码:原本只支持上传 png 后缀的文件我们加一个 php 后缀进去,即可直接上传 php 后缀的文件。
2024-07-07 12:27:30 1190 3
原创 ctfshow-web入门-文件包含(web88、web116、web117)
没有过滤冒号 : ,可以使用 data 协议,但是过滤了括号和等号,因此需要编码绕过一下。这里有点问题,我 ('ls') 后加上分号发现不行,可能是编码结果有加号,题目做了过滤去掉分号得到 PD9waHAgc3lzdGVtKCdscycpPz4=,传入时要把等号去掉,因为题目过滤掉了等号,否则会触发 die 函数,即使去掉等号,base64 解码也是
2024-07-06 16:10:35 1041
原创 ctfshow-web入门-文件包含(web87)巧用 php://filter 流绕过死亡函数的三种方法
但是我们传入的一句话木马也是 XML 标签,如何让它只去除 而不破坏我们传入的木马呢?我们可以先对一句话木马进行 base64 编码后传入,这样就不会受到strip_tags 函数的影响,当去除掉 后,由于 php://filter 允许使用多个过滤器,我们再调用 base64-decode 将一句话木马进行 base64 解码,实现还原。
2024-07-06 12:41:50 1129
原创 ctfshow-web入门-文件包含(web82-web86)条件竞争实现session会话文件包含
file_get_contents 函数将会读取文件的全部内容并将其作为字符串返回,strpos($content, "
2024-07-05 16:48:58 1533 4
西南科技大学数电实验mutisim仿真与diamond源文件FPGA部分
2024-08-01
西南科技大学模电实验mutisim原理仿真与工程仿真源文件
2024-08-01
西科大模电、电磁波、计网期末复习题
2024-05-26
西科大数据结构实验课程代码
2024-05-26
西科大数据结构期末复习题
2024-05-26
模拟电子技术实验虚拟实验平台
2024-05-26
网络穿透工具之EW(包含Windows、Linux、Mac等系统的版本)
2024-01-14
西南科技大学微机原理实验四(定时器程序设计)包含任务一与任务二的asm源文件附带LIB-TIM.OBJ文件
2023-12-16
数电实验考试综合设计mutisim及diamond仿真源文件(数值判别电路与十八进制计数器的设计)
2023-12-15
御剑1.5(含配置文件)
2023-12-15
Layer子域名挖掘机4.2纪念版
2023-12-15
goby-红队专用版-for-Windows
2023-12-15
16+进制计数器(基于两片74LS160D实现高进制计数器)数电实验考试内容之一
2023-12-13
西科大数电实验五(用计数器设计简单秒表)mutisim仿真源文件
2023-12-12
西科大数电实验四(基本触发器逻辑功能测试及FPGA的实现)diamond仿真源文件(波形图)包括D、JK、RS
2023-12-11
西科大数电实验四(基本触发器逻辑功能测试及FPGA的实现)mutisim仿真源文件
2023-12-11
随波逐流CTF解码工具
2023-10-08
IDA-Pro-7.7-全插件版
2023-07-09
ARCHPR 密码恢复破解工具
2023-07-09
Seay源代码审计系统(AWD必备)
2023-07-09
Githack(Git泄露利用必备工具)
2023-07-09
AWD比赛各类必备脚本
2023-07-09
HVV行动各大厂商面试总结
2023-07-09
蓝桥杯单片机(IAP15F2K61S2)资源数据包-2023
2023-07-09
Bandizip(专业版)
2023-07-09
D盾-webshell检测必备工具
2023-07-09
win10重装系统后wifi不见了是缺少网卡驱动吗
2024-05-27
edusrc挖掘干货
2024-03-25
腾讯云服务器的数据如何迁移到阿里云服务器上
2023-11-30
关于#服务器#的问题:想问一下物理服务器该怎么搭建和部署啊(相关搜索:云服务器)
2023-11-27
轻薄本推荐#ThinkPad#mac
2023-09-07
云服务器中了挖矿马怎么处理?
2023-09-07
增强型mosfet是vccs器件吗?必须依靠栅极外加电压才能产生反型层吗?
2023-06-11
如何基于一个IP搭建多个网站(博客和靶场)
2023-05-19
docker-comppse执行报错
2023-05-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人