- 博客(57)
- 收藏
- 关注
原创 ctfhub-口令密码
输入admin,123456,在进行抓包看看再发送到intruder进行爆破,找到那个异常的长度,在使用这个用户名和密码登录,就得到了flag。
2025-03-17 21:14:56
191
原创 ctfhub-信息泄露-备份文件下载
根据题目提示我们组合备份文件后缀和备份文件名,组合www.zip,自动下载文件解压打开文件打开flag_187230311.txt我们在url后面添加文件名flag_187230311.txt。
2025-03-15 14:45:17
323
原创 ctfhub-HTTP协议
它要我们使用CTF**B Method,其实就是ctfhub方式我们直接抓包试一试,把GET改成CTFHUB,在发送到repeater在repeater处点击发送,得到响应。
2025-03-12 16:55:30
124
原创 网络安全-web(10)-数字型和字符型sql报错
打开phpstudy,登陆MySQL命令行,输入以下sql语句,创建数据库。页面回显admin,说明有sql注入,并且是一个字符型sql注入。select 1+1/*这是注释*/;看页面回显 和刚刚的id=1是一样的。还是没有回显,测试字符型sql注入。页面没有回显,说明我们注入成功,直接输入id=1 看页面的回显。并且是一个数字型的sql注入,没有回显,测试数字型sql注入。输入以下sql语句,进行练习。
2025-01-21 15:28:10
223
原创 网络安全-web(9)-文件上传waf绕过
利用添加文件头的方法来绕过exif_imagetype,利用.user.ini来绕过黑名单检测,之后再利用<script language="php"></script>来绕过对php文件内容的检测。如果我们访问http://172.16.12.2/uploadfiles/0412c29576c708cf0155e8de242169b1.jpg/.php的话,它就会被当成php解析。说明后端是白名单过滤,只能上传图片,在上传图片后发现,后端还会对文件的MIME类型和文件头进行校验。
2025-01-21 10:46:12
862
原创 网络安全-web(7)-文件上传漏洞1
GLOBALS 所有全局变量数组 $_SERVER, 服务器环境变量数组 $_GET,通过GET方法传递给脚本的变量数组 $_POST, 通过POST方法传递给脚本的变量数组 $_COOKIE,cookie变量数组 $_REQUEST,所有用户输入的变量数组,包括$_GET,$_POST和$_COOKIE所包含的输入内容 $_FILES,与文件上传相关得变量数组 $_ENV,环境变量数组 $_SESSION,会话变量数组。上述代码获取了上传文件后,直接将其上传到了网站目录中,导致了文件上传漏洞。
2024-12-23 19:29:34
426
原创 网络安全-web(8)文件上传漏洞2
经过查阅thinkphp的相关上传逻辑可知,被上传的文件名是根据时间戳来生成的,所以我们只需要根据第一个正常文件的文件名通过爆破得到第二个、我们上传的恶意文件的文件名。而且$upload->allowExts是没有被用到的,所以无效。发现题目有上传功能,但限制上传文件的文件名中不能含有.php。分析源码,之后写脚本利用同时上传多文件的方法来绕过waf。这样我们就拿到了flag。
2024-12-23 19:29:09
224
原创 网络安全-web(6)-php伪协议
php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码。session文件为: /tmp/sess_845b8c8b6633b2b532da04b28110e410。php:// — 访问各个输入/输出流(I/O streams)data:// — 数据(RFC 2397)glob:// — 查找匹配的文件路径模式。phar:// — PHP 归档。
2024-12-23 19:16:10
946
原创 网络安全-web(5)-信息泄露
题目提示我们 “flag在这里,但是你看不到” ,说明flag在这个页面上,也就意味着我们可能需要获取到源码才能拿到flag,首先使用dirsearch扫一下题目,看看会不会有什么发现,该工具在操作机桌面上的tools文件夹中,使用如下命令。使用这个文件,就可以用来恢复源代码。在CTF中,一些需要代码审计的题目往往不会直接交给我们,而是通过git泄露或其他泄露方式交给选手,将源代码的发现过程作为一个考点,而在git泄露的利用中,经常会利用到一个自动化工具——GitHack。
2024-12-23 19:08:49
801
原创 NewStar CTF 2024-week2-web
SSTI模板注入(可以使用使用工具fenjing)直接flask ssti:{{lipsum.提到拉链,就知道这是有关zip。右键检查,发现代码没有什么信息。
2024-12-18 20:04:57
303
原创 NewStar CTF 2024-week1-web
我们合并得到的flag每个部分:ZmxhZ3tXQTB3IV95NF9yM2FsMXlfR3I0c1BfSkpKcyF9,进行解码flag:flag{WA0w!分析代码:加密流程为post提交cmd和key,base解码key,cmd反转,MD5加密的反转cmd等于解密后的key,最后将cmd解码,最后逆向加密一下,就能得到flag。就得到了flag:flag{You_Ar3_R3Ally_A_9ooD_d0ctor}我们使用post方法请求接口,得到第二部分flag:IV95NF9yM2Fs。
2024-12-09 22:20:14
589
原创 BUUCTF-Web题解(持续更新中)
查询字段1’ union select 1,2,group_concat(id,username,password) from l0ve1ysq1#,就得到了flag:flag{5366f7aa-8040-44fc-bd88-bd0cfc671f3d}cat /flag进行查看flag文件,于是得到flag:flag{d81837e0-b908-4a0a-bac0-23ff569befe1}1,于是就得到了flag:flag{fac64f95-3877-4f3e-9772-47bb8585b31a}
2024-11-25 22:57:33
1783
原创 网络安全-web(4)-PHP弱类型特性
上图是测试结果,可以看到当我们传入的参数是数组时,函数虽然报出了警告,但是没有退出,而是返回了NULL,那么这时候问题就容易解决了,如果我们将a,b的值都赋成数组类型,md5函数返回的结果都为NULL,那么即使是“===”也是成立的,我们来实际测试一下。接着回到题目中来,我们知道得到flag的方法是使我们传入的json数据中key键对应的值和代码中的变量flag相同,这显然是不可能的,再次观察代码,可以看到在第七行的比较中使用的仍然是“==”来做判断,这时不难联想到前面讲的弱类型导致的问题。
2024-11-24 21:22:29
888
原创 网络安全-web(3)-Linux及其基本命令
ls -al 显示详细文件信息同时显示隐藏文件 ls -al。rm -r删除整个文件夹要加-r遍历 rm -r yds。cd ../.. 上一层路径的上一层 cd ../..touch 新建文件 touch yds.txt ls。cp复制文件 cp yds.txt /root/桌面。mv 移动文件 mv yds.txt /root/ls -l 查看文件属于哪个用户 ls -l。cd - 回到刚切换过来的路径 cd -ls -a 显示隐藏文件 ls -a。ls 查看当前目录下的文件 ls。
2024-11-24 21:15:52
288
原创 网络安全-web(2)-web工具使用
因为我们要对浏览器进行抓包,首先得对浏览器设置代理,让浏览器的流量走我们设定好的地址,127.0.0.1是本地的意思,并让流量从8080端口出去,然后BurpSuite的拦截端口设置的也是127.0.0.1的8080端口,因此当我们把抓包按钮打开,浏览器的流量就会先经过BurpSuite,从而就达到了抓包的效果。首先要对浏览器设置代理,这样才能使用BurpSuite进行抓包,点击右侧菜单栏,点击设置,往下拉找到高级设置,再点击网络设置,将代理修改为127.0.0.1,端口为8080。
2024-11-24 21:05:59
881
原创 网络安全-web(1)-web环境搭建
打开apache和mysql服务,点击网站选项栏,然后点击左上角的创建网站,自定义站点域名为test.com,其他选项默认,点击确认进行创建新的站点,此时域名为test.com站点的跟目录名称为test.com。通过使用phpstudy,我们可以很方便的在windows环境中搭建Wamp环境并投入使用。打开火狐浏览器,在地址栏中输入test.com,验证站点是否可以正常访问。打开操作机上的phpstudy安装包,安装路径选择默认,直接点击安装。可以看到我们成功的访问到该站点的默认页面。
2024-11-24 20:59:46
191
原创 数据结构-实验十(排序)
并测试在不同数据规模下的排序效率。1、请设计直接插入排序算法函数void insertSort(int a[],int n),对a[1]..a[n]进行升序排序。并测试在不同数据规模下的排序效率。3、请设计简单选择排序算法函数void selectSort(int a[],int n),对a[1]..a[n]进行升序排序。4、请设计shell排序算法函数void shellSort(int a[],int n),对a[1]..a[n]进行升序排序。slnklist.h代码。Arraylo.h代码。
2024-11-24 20:30:53
285
原创 数据结构-实验九(检索)
5、已知,二叉树存储结构定义见bstree.h,请编写一个算法函数bstree creatBstree(int a[],int n),以数组a中的数据作为输入建立一棵二叉排序树,并将建立的二叉排序树进行中序遍历。2、利用creatLink()函数从data1.txt中读入不同规模的数据存入不带头结点的单链表,编写基于单链表的顺序查找算法,测试数据量为1万、5万、10万、20万、编写基于数组的顺序查找算法,测试数据量为1万、5万、10万、20万、30万、40万和50万时的数据查询时间。bstree.h代码。
2024-11-24 20:25:28
355
原创 数据结构-实验八(图)
3.编写程序实现图采用邻接表存储结构,编程对图进行深度优先遍历。2.编写程序实现图采用邻接表存储结构,编程对图进行广度优先遍历。1.编写程序输出以邻接表为存储结构的无向图的各顶点的度。5.编写程序实现Dijkstra单源最短路径算法。4.编写程序实现Prim求解最小生成树算法。6.编写程序实现拓扑排序算法。
2024-11-24 20:18:36
273
原创 数据结构-实验七(二叉树)
3、编写函数bintree prelist(bintree t),bintree postfirst(bintree t),分别返回二叉树t在前序遍历下的最后一个结点地址和后序遍历下的第一个结点地址。4、假设二叉树采用链式方式存储,t为其根结点,编写一个函数int Depth(bintree t, char x),求值为x的结点在二叉树中的层次。2、编写算法函数void levelbintree(bintree t),实现二叉树的层次遍历。
2024-11-24 20:10:37
269
原创 数据结构-实验六(树)
根据输入的树的括号表示字符串s,生成树的存储结构。例如,若要建立教材图6.4所示的树,应输入A(B(E,F),C,D(G(I,J,K),H))。(说明,tree.h中定义的常量m表示树的最大度,请根据建树的需要自行修改m的值)3、 假设树采用指针方式的孩子表示法表示,试编写一个非递归函数void PostOrder1(tree t),实现树的后序遍历算法。4、假设树采用指针方式的孩子表示法表示,试编写一个函数int equal(tree t1, tree t2),
2024-11-24 20:04:10
310
原创 数据结构—实验五(递归)
请编写递归函数int binSearch(int a[], int left, int right,int key), 采用二分查找法在数组a[left..right]中查找值为key的元素所在的位置,若查找失败函数返回-1。2、请编写一个递归算法函数void partion(int a[], int left, int right),将数组a[left..right]中的所有奇数调整到表的左边,所有偶数调整到表的右边。slnklist.h代码。Arraylo.h代码。
2024-11-24 19:53:26
455
原创 网络安全web之信息泄露
git命令的参考资料:https://blog.youkuaiyun.com/weixin_49851451/article/details/123944431?8).git reset -hard HEAD:放弃工作区和index的改动,HEAD指针仍然指向当前的commit。2).git add && git commit //git:添加文件和提交文件。6).git ls-files -stage:检查保存在stage的文件。5).git diff:对比工作区和stage文件的差异。
2024-11-18 15:30:18
1095
原创 2024赣ctf部分题解
小技巧:我们直接百度识图,再对比一下就知道图片里建筑的名字,就得到了flag:GCTF{湖南省长沙市杜甫江阁}小技巧:我们直接百度识图,再对比一下就知道图片里建筑的名字,就得到了flag:GCTF{江西省新余市仙女湖}在对得到的二维码进行lsb隐写,得到flag:GCTF{wa_ zh3nd3h@owan}在对得到的二维码进行lsb隐写,得到flag:GCTF{wa_ zh3nd3h@owan}进行两次的base解码,得到一半的flag:m1ssccc$$}我们把得到的进行unicode转ascii,
2024-11-16 22:23:11
653
原创 数据结构-实验四(栈与字符串)
4.已知字符串采用带结点的链式存储结构(详见linksrting.h文件),请编写函数linkstring substring(linkstring s,int i,int len),在字符串s中从第i个位置起取长度为len的子串,函数返回子串链表。2.利用链式栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能。3.判断是否为运算符,判断运算符的优先级 ,缀表达式,转换为后缀表达式,将数字字符串转变成数值 , 后缀表达式求值程序。
2024-11-14 21:08:55
230
2
原创 数据结构-实验三(带头结点的单链表)
3.假设带头结点的单链表head是升序排列的,设计算法函数linklist insert(linklist head,datatype x),将值为x的结点插入到链表head中,并保持链表有序性。an)采用带头结点的单链表存储,请设计算法函数void reverse(linklist head),将带头结点的单链表head就地倒置,使表变成(an,an-1,…4.编写算法函数void delallx(linklist head, int x),删除带头结点单链表head中所有值为x的结点。
2024-11-14 20:58:01
261
原创 数据结构-实验二(不带头节点的单链表)
3.假设不带头结点的单链表head是升序排列的,设计算法函数linklist insert(linklist head,datatype x),将值为x的结点插入到链表head中,并保持链表有序性。分别构造插入到表头、表中和表尾三种情况的测试用例进行测试。2.假设线性表(a1,a2,a3,…an)采用不带头结点的单链表存储,请设计算法函数linklist reverse1(linklist head)和void reverse2(linklist *head)将不带头结点的单链表head就地倒置,
2024-11-14 20:51:11
303
原创 数据结构-实验一(线性表的顺序实现)
1.编写一个算法函数void sprit( sequence_list *L1,sequence_list *L2,sequence_list *L3),将顺序表L1中的数据进行分类,奇数存放到存到顺序表L2中,偶数存到顺序表L3中,编写main()进行测试。4.假设顺序表la与lb分别存放两个整数集合,函数inter(seqlist *la,seqlist *lb,seqlist *lc)的功能是实现求顺序表la与lb的交集存放到顺序表lc中。
2024-11-14 20:40:58
153
原创 ctfshow-web入门-爆破(24)
从 PHP 4.2.0 开始,随机数生成器自动播种,因此没有必要使用该函数 因此不需要播种,并且如果设置了 seed参数 生成的随机数就是伪随机数,意思就是每次生成的随机数 是一样的。4.我们根据给出的种子输出得到的序列,填入URL就得到了flag:flag{27c9ebc7-9161-428c-bdc1-0020200fafb0}//去掉mt_srand()函数后,系统会自动给rand函数播种,但也是播种一次。1.根据题目提示:参考PHP随机数的伪随机数 mt_srand(//设置随机数播种为0。
2024-10-27 22:12:47
372
原创 ctfshow-web入门-爆破(21)
payload type选择custom iterator,payload options依次添加admin、:、123456(这个是根据每个人的输入情况而定的),payload processing选择base64编码,将payload encoding取消掉。我们回到登录界面,就得到了flag:ctfshow{b6c93ec8-1d34-4d51-a77f-4e307e259340}在选择长度不一样的,我们把它进行base64解码,得到账号和密码:admin,shark63。需要进行base64编码;
2024-10-25 21:18:58
185
原创 ctfshow-web入门-爆破(23)
2.我们发现是一段php代码,简单分析是说token传入的参数值经过md5加密后,它的第一位等于第十四位且第十四位等于第十七位,第一位加上第十七位加上第十四位后除以第一位等于第三十一位,就能得到flag。4.在url后面用GET方法传递token=3j,就得到flag:ctfshow{79a39094-9353-4c9f-a21a-e1f05df0d263}1.根据题目提示:查看源代码发现我们需要get一个token满足条件就可以出flag。3.我们编写python代码,运行得到了token应该为3j。
2024-10-21 19:48:01
434
3
原创 buuctf-basic-buu lfi course1
2.我们在url后面加上/?file=/flag,我们盲猜这个文件的名字为flag,就得到了flag:flag{70dc30de-7ce5-48a6-a5a0-0059a12c90df}1.发现是一段PHP代码,我们分析一下明白是如果GET传输了文件名为file的参数,则把file的值赋值给str,还要执行GET请求里file参数指定的文件。
2024-10-21 14:41:35
277
原创 ctfshow-web入门-信息搜集(20)
1.根据题目提示:mdb文件是早期asp+access构架的数据库文件 直接查看url路径添加/db/db.mdb下载文件通过txt打开或者通过EasyAccess.exe打开搜索flag。3.我们用记事本打开,查找flag,得到flag{ctfshow_old_database}2.我们在url后面添加/db/db.mdb,下载一个文件。
2024-10-20 19:52:06
195
原创 ctfshow-web入门-信息搜集(19)
3.我们使用hackbar进行post传输,就得到flag:ctfshow{2fcb6fde-15c5-48d3-8026-230bea22ecca}1.根据题目提示:前端查看源代码,post提交用户名密码。2.右键检查,查看js代码。
2024-10-20 19:45:37
132
原创 ctfshow-web入门-信息搜集(18)
4.我们在url后面添加/110.php,于是得到了flag:ctfshow{032df550-bfdd-48c4-b632-11d41c03dee6}1.根据题目提示:查看js文件,查看flag的条件,去通过uncode解码。2.右键检查,查看js代码,我们在调试器来源这里找到了通关成功的条件。3.把这串编码拿去解码。
2024-10-20 19:12:10
205
空空如也
求网络安全web手的辅导(有偿)
2024-11-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人