- 博客(37)
- 收藏
- 关注
原创 ctfshow-web入门-web172
第四步:使用database(),查询数据库 1' union select 1, database() --+第一步:确定sql注入的类型。1' or 1=1 确定为字符型(根据上面的php代码也能确定)应该使用下列查询语句:加个括号。第二步:使用order by确定列数 1' order by 3 --+第三步:测试回显位:1' union select 1,2 --+该题目与上一个题目不是同一个类型,该题目需要进行sql联合查询。第二个x代表是需要确定是有几个列,并且确定回显字段。
2024-10-25 14:03:44 965
原创 ctfshow-web入门-web31
使用array_reverse()函数,颠倒查询到的目录下的文件的位置,即将flag.php文件移动到第二个位置。scandir()函数,扫描目录,由于 . 代表当前目录,所以会扫描当前目录中的文件。使用$9,因为$9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串。localeconv()函数可以返回一个小数点 和数组,小数点位于数组的第一位。3、使用连续调用函数的方法,实现对flag的输出。pos()函数输出数组的第一位,即输出小数点。利用next()函数,读取第二个位置的文件。
2024-10-24 21:21:26 506
原创 ctfshow - web入门- web29
可以在system函数中执行nl命令,也可以通过echo等输出函数输出结果。解题:eval函数为该题中的解题点,eval函数会将字符串当做php代码来执行,所以要得到flag,只需要在传参过程中执行查询flag的命令,且字符串中不出现flag。使用cat / tac 命令查看flag,是用fla + 通配符*来代表flag,由于f开头字符只有一个,f*其实就可以。分析:参数c正则匹配查询flag,没有则执行eval($c)。nl命令:nl是给文件的每一行添加行号,并发送到标准输出。
2024-10-22 09:29:19 318
原创 PHP基础知识
开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。index 保存变量的名称。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
2024-09-27 13:20:05 988
原创 Misc-流量分析基础
第一种:直接搜索flag字符串第二种:flag进行了十六进制编码,通过十六进制编码解决第三种:压缩包流量:tar.gz的压缩包可以直接在wireshark中解压查看,其他的压缩包则要将流量导出来,然后去解码。
2024-09-25 16:17:06 676
原创 数据库对象
那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。事务(Transaction)指的是一个操作序列,该操作序列中的多个操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位,由DBMS(数据库管理系统)中的事务管理子系统负责事务的处理。
2024-09-25 11:27:39 401
原创 Navicat连接数据库
在当下虚拟机中无法解决,换一个虚拟机重新安装。在无其他sql数据库的影响的情况下,成功安装8.0.39版本的mysql。原因:由于安装了phpstudy所以导致了访问的mysql的版本,默认是5.5,导致命令无法执行。使用netstat -ano | findstr 3306 查询端口。在本地sql数据库可以访问,说明数据库开启。使用taskill /pid 关闭进程。
2024-09-25 11:25:15 300
原创 SQL语言入门
数据定义语言(Data Definition Language,DDL):DDL主要用针对是数据库对象(数据库、表、索引、视图、触发器、存储过程、函数)进行创建、修改和删除操作。数据查询语言(Data Query Language,DQL):DQL主要用于数据的查询,其基本结构是使用SELECT子句,FROM子句和WHERE子句的组合来查询一条或多条数据。事务控制语言(Transaction Control Language,TCL):TCL用于数据库的事务管理。2) ALTER:修改数据库对象。
2024-09-25 11:23:47 201
原创 数据库表列类型
例如,在东八区插入的TIMESTEMP数据为2017-07-11 16:43:25,在东七区显示时,时间部分就变成了15:43:25,在东九区显示时,时间部分就变成了17:43:25。因为VARCHAR类型能够根据字符串的实际长度来动态改变所占字节的大小,所以在不能明确该字段具体需要多少字符时推荐使用VARCHAR类型,这样可以大大地节约磁盘空间、提高存储效率。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。需要注意的是与整数类型不一样的是,浮点数类型的宽度不会自动扩充。
2024-09-25 11:22:25 380
原创 MySQL的登录、访问、退出
访问MySQL服务器对应的命令:mysql.exe ,位置:C:\Program Files\MySQL\MySQL Server 8.0\bin(mysql.exe需要带参数执行,所以直接在图形界面下执行该命令会自动结束)执行mysql.exe命令的时候出现错误:需要配置环境变量path:注意:控制命令台必须重启才会生效:登录的命令:mysql -hlocalhost -uroot –p² mysql:bin目录下的文件mysql.exe。
2024-09-25 11:20:42 526
原创 MySQL的安装
Configure MySQL Server as a Windows Service:给MySQL服务器配置一个服务项。记住MySQL的监听端口默认是3306。Windows Service Name:服务名称,采用默认名称MySQL80即可。10.产品配置Product Configuration到此结束:点击Next按钮。3.进入产品配置向导,配置多个安装细节,点击Next按钮即可。8.Windows服务:Windows Service。PS:如果配置出错,查看右侧的log,查看对应错误信息。
2024-09-25 11:17:38 1051 1
原创 MySQL数据库
MySQL采用了General Public License,这意味着授予用户阅读、修改和优化源代码的权利,这样即使是免费版的MySQL的功能也足够强大,这也是为什么MySQL越来越受欢迎的主要原因。MySQL的核心程序完全采用多线程编程,这些线程都是轻量级的进程,它在灵活地为用户提供服务的同时,又不会占用过多的系统资源。总体来说,MySQL是一款开源的、免费的、轻量级的关系型数据库,其具有体积小、速度快、成本低、开放源码等优点,其发展前景是无可限量的。换句话说,社区版可以理解为是企业版的测试版。
2024-09-25 11:16:37 479
原创 数据库基本概念
(1)数据所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的。它不仅仅指狭义上的数字,而是有多种表现形式:字母、文字、文本、图形、音频、视频等。现在计算机存储和处理的数据范围十分广泛,而描述这些数据的符号也变得越来越复杂了。(2)数据库数据库(Database,DB)指的是以一定格式存放、能够实现多个用户共享、与应用程序彼此独立的数据集合。(3)数据库管理系统。
2024-09-25 11:15:21 929
原创 pwn题目搭建过程中glibc出现问题的解决方案
前言:在做pwn的堆题时,会遇到不同版本的glibc。为了更好地与远程环境对应,我们可以通过patchelf和glibc-all-in-one来更换程序动态加载时的glibc。简单介绍一下,glibc-all-in-one用来下载需要的glibc包,然后用petchelf进行更换操作。1、安装patchelf:makemake check或者:安装命令: sudo apt install patchelf检查一下: patchelf -h。
2024-09-12 12:25:35 828
原创 Ubuntu中安装Nginx实现靶场的端口转发及其过程中错误的处理
解决方法:打开 nginx的安装目录/objs/Makefile,去掉CFLAGS中的- Werror,再重新make。5、进入到安装nginx目录下的sbin目录,默认路径为:/usr/local/nginx/sbin/注意:如果存在apache等,可能会导致80端口被占用,因此需要关闭掉占用80端口的进程。在该文件夹下使用ls -l objs/命令 会出现一个nginx的可执行文件。注意:需要回到/usr/local/nginx/sbin/目录下执行该命令。6、在该目录下启动nginx。
2024-09-10 10:13:20 628
原创 BUUCTF [RoarCTF 2019] Easy Java1
在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。防范:一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,解决方法是修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all;漏洞利用:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。查看web.xml文件,来寻找class文件的位置。
2024-06-23 16:24:18 313
原创 BUUCTF [CISCN2019 华北赛区 Day2 Web1] Hack World
payload 变量:构造了一个 SQL 注入 payload,使用 substr() 函数逐个提取 flag 的字符,并通过 ascii() 函数转换为 ASCII 码值,然后与 j 比较。#外层循环 (for i in range(1, 50)):循环遍历 flag 的每个字符位置,假设 flag 最长为 50 个字符。#内层循环 (for j in range(32, 128)):循环遍历 ASCII 字符集中的可打印字符(从空格到 '~')。4、因此可以尝试通过布尔盲注的方式来得到flag。
2024-06-23 15:52:24 389
原创 BUUCTF [网鼎杯 2020 青龙组] AreUSerialz1
(2)对于FileHandler类,由于在反序列化中,先调用__destruct()析构方法,所以需要设计op的值绕过与 "2" 的强相等。(3)所以当op = 2时,一方面利用弱相等,可以调用read()方法和output()方法,另一方面也可以绕过强相等,避免执行在__destruct()时 op 赋值为 1。(1)get传参 "str",string转化为字符串,用 is_valid() 函数来进行过滤,要求传入的字符串的每一位字符的ASCII码都在32~125之间。1、阅读题目:php绕过类型。
2024-06-19 17:26:17 276
原创 BUUCTF [极客大挑战 2019] HardSQL 1
原因:在输入' 或者 # 号时,'会被识别出来过滤掉,#会注释掉后面的内容,因此要进行url编码。在该题目中,双写被过滤掉了,同时空格,=,union也被过滤了。或者, payload为: 用 ^ 符号代替 or。1、阅读题目,是SQL注入的题目类型。2、尝试万能密码和堆叠注入,均被过滤。
2024-06-18 16:59:41 333
原创 BUUCTF [护网杯 2018] easy_tornado1
Handler指向的处理当前这个页面的RequestHandler对象,handler是RequestHandler的别名,而上面又提到RequestHandler.settings是self.application.settings的别名。2、render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,即可进行SSTI模板注入或者XSS注入。(4)访问出错后出现如下界面,输入{{1}},测试得出存在SSTI模板注入漏洞。
2024-06-18 14:37:36 524
原创 BUUCTF [极客大挑战 2019] BuyFlag1
strcmp比较的是字符串类型,如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。在这道题目中,传入money[]=1可以使得该函数报错,但返回结果为真,所以可以绕过。2、查看源码,发现解题线索,post传参方式,传入参数money和password的值正确即可解出flag。(1)在该题中需要修改Cookie: user=1 原因:user=1代表为可新用户。1、查看题目,在PAYFLAG目录中发现与flag有关。(2)bp进行POST传参时需要在两个位置进行修改。
2024-06-12 19:55:27 292
原创 BUUCTF [RoarCTF 2019]Easy Calc1
(3) 由于num被过滤, 因此根据php解析规则,可以将(num)改写为( num),waf在过滤时不会发现num,但是php在解析时" num"和"num"无区别,这样就可以传入查寻字符串了。(6) 又由于scandir("/")扫描后是以数组的形式输出,所以要利用var_dump() 或者 print_r()来对内容进行输出。num=scandir(chr(47)),利用" / "该符号的ASCII来进行转化。(4) 可以通过scandir("/")来扫描整个根目录,scandir()函数相关知识。
2024-06-11 18:06:00 548
原创 BUUCTF simplerev
1、使用IDA打开simplerev文件,查找函数,进入如下函数:发现flag关键字。4、查看key1 和 key3的值:得出v0和key的值。2、将src和v10还原成字符,按R键。
2024-05-05 13:21:57 270
原创 BUUCTF 新年快乐
如果用户输入的标志与预定义的标志相同,则输出 "this is true flag!2、接着用IDA打开脱壳后的文件,查看String窗口,发现了flag关键字。: 如果用户输入的标志与预定义的标志不同,则输出 "wrong!数组的内容全部设置为 0,长度为 0x1E (30) 个字节。,该函数在这段代码中没有显示出来,可能在其他地方定义。: 这是一个函数声明,表示定义了一个返回整数的函数。: 输出提示信息,要求用户输入正确的标志。,这个值表示用户输入的标志是否正确。个字符相同,则执行下面的代码。
2024-04-27 10:47:58 329
原创 BUUCTF XSS闯关1
使用'1闭合后面的单引号,当然也可以使用"//"将其注释,最终 username = alert(1);这段代码是一个简单的JavaScript脚本,其中包含一个alert函数调用,用于显示一个弹出框,内容为"xss"。javascript:alert(1),浏览器会把javascript后面的内容当做代码执行,直接在当前页面执行。所以执行:autosubmit=1&action=JavaScript:alert(1);
2024-04-18 17:59:14 2186 1
原创 BUUCTF afr_31
使用python3 ./flask_session_cookie_manager3.py encode -s "Drmhze6EPcv0fN_81Bj-nA" -t "{'n1code': '{{''.class.mro[2].subclasses()[71].init.globals['os'].popen('cat flag.py').read()}}'}" 进行伪造。(2)name=../../../../../proc/self/cwd/server.py (最后的py文件可以改变)
2024-04-17 15:13:22 411
原创 BUUCTF 粗心的小李1
最后使用git reset --hard 213b7e386e9b0b406d91fae58bf8be11a58c3f88 将文件还原到该文件夹内,出现一个html文件。然后在下载的文件内打开终端,使用git log命令,发现flag。1、审题,发现是 .git泄露的问题。
2024-04-14 19:48:06 224 1
原创 BUUCTF-[极客大挑战 2019]Http1
比如我在www.sojson.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:Referer=https://www.sojson.com。中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及浏览器版本、浏览器渲染引擎、浏览器语言、浏览器插件等。Referer 常用在防盗链和防恶意请求中。提示我们要使用的浏览器为:Syclover。
2024-03-14 15:30:33 484 1
原创 BUUCTF-LoveSQL1
构造新的payload:username=adminn ' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1。(2)测试了几次到100也没有爆出字段,也将#进行了url编码,更换万能账户再次测试,测试成功。(1)在成功登录的基础上使用联合注入语法知识进行,首先使用 order by 判断字段数。表爆出成功,发现两个表名。
2024-03-13 22:18:01 1687
原创 BUUCTF-Secret File
构造payload:?对secr3t.php进行访问发现了flag的位置,并发现了传输参数的方式为get传参。打开题目没有任何可用信息,查看源码:发现一个php有点可疑,访问进入下一个页面。在bp抓包后,将内容发送到Repeater板块,拦截发现一个secr3t.php。file=flag.php ,发现flag不可见。判断应该是隐藏在了SCRET的这个页面中。
2024-03-13 14:58:12 463
原创 BUUCTF-Easysql(另一个题目)
因而也就要满足:select 输入的内容 || 一个列名 from 表名(select 输入数据 || flag from Flag)。注:这里的逻辑是先把||转换为连接操作符,注意分号隔断了前面的命令,所以要再次添加select来进行查询,这里把1换成其他非零数字也一样会回显flag。因为mssql中||表示连接操作符,不表示或的逻辑,flag后端又存在“或” 的逻辑,因而可以把 || 的或的逻辑改成连接符的作用就可以了。(3)查看Flag,发现被过滤,所以无法直接用堆叠注入的方法直接获取到Flag。
2024-03-10 19:55:41 420 1
原创 BUUCTF-随便注
报错注入:报错注入是通过特殊函数错误使用并使其输出错误结果来获取信息的。简单点说,就是在可以进行的位置,调用特殊的函数执行,利用函数报错使其输出错误结果来获取数据库的相关信息。堆叠注入:mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔开,而堆叠注入其实就是通过结束符来执行多条sql语句。(1)报错盲注,构建payload:第一种payload:inurl?
2024-03-10 12:08:27 1593 1
原创 BUUCTF-EasySQL(sql注入题目)
为注释符,因而传入后台的是 select * from table_name where username='1' or 1=1 (因为1=1恒为真,所以SQL语句返回真值,成功绕过验证得到flag),则可返回真值。4、在该题目中,如果不匹配数据库也能返回真值那么就能绕过验证登录(万能用户名)。一般的,库验证登录注册查询数据会用到以下的句型,如果用户与密码匹配正确则返回。因为1=1恒为真,所以SQL语句返回真值,成功绕过验证得到flag。1、万能用户名/密码。2、在该题目中使用,
2024-03-10 10:43:04 567
原创 网络渗透-护网行动部分相关知识
多地ping/国外ping/工具(端口扫描工具:nmap\masscan\RustScan)(为入口权限获取—服务端口漏洞利用做一个铺垫)IP反差域名/域名查询IP/目标C段探测(批量抓取web服务器的banner,工具包括: nmap\masscan\RustScan)入口权限->内网搜集/探测->免杀提权->抓取登陆凭证->跨平台横向—>入口维权—>数据回传->定期权限维护。1)MITRE ATT&CK框架 { ATT&CK (对抗战术、技术和常识的简称)}(7)入口权限获取—钓鱼攻击。
2024-03-10 10:33:51 471 1
原创 BUUCTF-warmup
file=hint.php../../../../../ffffllllaaaagggg(这里其实包含的就是ffffllllaaaagggg,而不包含hint.php),此时函数实参 $page的值为 “hint.php../../../../../ffffllllaaaagggg”,但其并不在$whitelist白名单列表中,函数不会返回true。第2个语句可以执行,返回true。则经过mb_substr()的截取,返回的$page的值为 hint.php,刚好在白名单中通过校验,函数返回true。
2024-03-10 10:30:37 864 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人