随笔分类 - CTF
摘要:GCC 中使用以下参数设置 Canary: -fstack-protector 启用保护,不过只为局部变量中含有数组的函数插入保护 -fstack-protector-all 启用保护,为所有函数插入保护 -fstack-protector-strong -fstack-protector-expl
阅读全文
摘要:前言 溢出攻击的本质在于冯·诺依曼计算机模型对数据和代码没有明确区分这一先天性缺陷。因为攻击者可以将代码放置于数据区段,转而让系统去执行。 NX缓解机制开启后,使某些内存区域不可执行,并使可执行区域不可写。示例:使数据,堆栈和堆段不可执行,而代码段不可写。 本次实验基于pwm入门实验1的延伸:htt
阅读全文
摘要:实验的缓冲区溢出源码: // 1.c #include<stdio.h> void func() { char name[0x50];//0x100大小的栈空间 read(0, name, 0x100);//输入0x200大小的数据 write(1, name, 0x100); } int main
阅读全文
摘要:基本信息查询 Stack:这里没有开启Stack保护,如果开启的话会在栈中的返回地址前放一个随机值,如果被覆盖,程序就会报错退出 NX:没有开启,如果开启的话就不能让IP寄存器指向堆、栈 这里显示这是一个ELF32位的程序 运行后发现需要input canary(栈保护) 当启用栈保护后,函数开始执
阅读全文
摘要:安装: sudo apt install checksec 介绍: 1.Relro:Full Relro(重定位表只读) Relocation Read Only, 重定位表只读。重定位表即.got 和 .plt 两个表。 2.Stack:No Canary found(能栈溢出) Canary,
阅读全文
摘要:下载附件,解压后有一个加密文件和rsa.py代码如下: flag = open('flag.txt','r').read() N = 221 e = 5 enc = b'' for i in flag: enc += bytes([pow(ord(i),e,N)]) encrypt = open('
阅读全文
摘要:打开页面,发现只有一个登录框,我们进行注入,使用burpsuite的fuzzing获取登陆的payload 使用页面登录,发现只有一个页面可以打开,打开后提示身份信息有问题 这时候发现了一个参数m,fuzz后发现过滤了php|base64,我们换成大写绕过获取页面源码 将输出的字符串base64解码
阅读全文
摘要:进入login.php页面,F12后发现了 按照文本的提示,我们get传递一下debug参数 拿到login.php源码: <?php ob_start(); ?> <?php if(isset($_POST['usr']) && isset($_POST['pw'])){ $user = $_PO
阅读全文
摘要:进入页面,发现按钮点了没有反应,切换页面都提示要先注册 发现注册不了,这时候查找了robots.txt文件,发现了.git文件夹 这是.git泄露了,使用GitHack把文件下载下来 经过查看发现这里面需要用到config.php文件和api.php文件 审计api.php代码: <?php req
阅读全文
摘要:进入页面,发现只有一个界面可以点击,发现了一个链接: http://220.249.52.133:34187/index.php?page=index 发现在页面尾部打印了index,这很像php的函数 include($page); 尝试文件包含: 接着构造一下可执行的命令 http://220.
阅读全文
摘要:fuzz payload库:https://github.com/fuzzdb-project/fuzzdb/blob/master/attack/sql-injection/detect/xplatform.txt 打开Burp Suite,可以先开代理抓一个正常请求包,然后转到Intruder模
阅读全文
摘要:在登录和注册页面中fuzz,发现注册界面可以反复注册一个用户 尝试覆盖admin和root之类的用户,发现都是普通用户,这个bug目前没有可利用的地方 最后在忘记密码的界面找到了注入点,这是一个post注入,使用sqlmap进行爆库 python sqlmap.py -u "http://220.2
阅读全文
摘要:首先提交百度的域名发现没有反应,接着提交本地的ip发现反馈了一个ping的本地ip记录 首先使用管道符号执行ls命令,得到的回显是Invalid URL,在尝试后发现过滤了许多符号,只保留了字母数字和@小数点等 127.0.0.1 | ls 传递%80会出现报错,url编码使用的是16进制,80也就
阅读全文
摘要:进入页面,首先注册一个用户,发现用户页面存在注入 测试发现过滤了空格|0X(16进制),使用/**/或者++替换空格进行注入 爆库名: SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。
阅读全文
摘要:进入页面,发现找不到任何提示 最后发现了.git文件,使用GitHack把文件下载下来 .git文件夹 .git文件夹是git init后在当前目录生成的一个管理git仓库的文件夹,这里包含所有git操作所需要的东西 打开index.php文件,以下是其中的php代码 <?php if (isset
阅读全文
摘要:首先进入页面,发现是python代码,整理如下: import flask import os app = flask.Flask(__name__) app.config['FLAG'] = os.environ.pop('FLAG') @app.route('/') def index(): r
阅读全文
摘要:打开网页发现有几个目录,整理后: http://220.249.52.133:35356/file?filename=/flag.txt&filehash=ae495bad95220a5138f3437fb9919a29 flag in /fllllllllllllag http://220.249
阅读全文
摘要:1.什么是phps文件? phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。 首先访问 index.phps获得代码: not allowed! "); exit(); } $_GET[i
阅读全文
摘要:代码: <?php $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; function encode($str){ $_o=strrev($str); //字符串倒序 // echo $_o; for($_0
阅读全文
摘要:下载附件,打开后发现有乱码 使用网页打开后发现是一个输入框 我们把最后的eval()函数换成console.log()过滤一下乱码 再重新排版一下得到: function $(){ var e=document.getElementById("c").value; if(e.length==16)/
阅读全文

浙公网安备 33010602011771号