自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 问答 (3)
  • 收藏
  • 关注

原创 博客搬家~

因为想提高自己博客的质量,所以打算把博客搬家到github,欢迎来访。

2023-05-25 21:47:32 399

原创 java web 重定向&&转发

有时我们需要Aservlet将请求转交给Bservlet来处理,这就需要用到转发。我们先做这个假设:我能不能在Aservlet中new一个Bservlet,然后把Httprequest对象交给我们自己new的这个Bservlet来处理呢?代码层面是可以的,但是违背了servlet的本质,我们写的一切servlet都是由tomcat统一init、掉service方法、生命周期管理的,自己new就成java se了,是实现不了正规的web流程的。重定向就比较简单了,就是一个跳转。

2023-04-24 15:24:18 623

原创 初识tomcat、servlet

这要看它起到的作用是什么,而要说它起到的作用是什么我们先要知道是谁在遵守servlet规则,答案是java web服务器和开发java web的程序员,java web的服务器有很多种,除了tomcat还有jboss、weblogic等,大家如果都实现这套servlet接口,首先带来的好处就是我的java web项目换个java web服务器照样运行。tomcat是java的web服务器之一,是一个轻量级的web服务器,遵守servlet的规则。|-----web.xml(注册servlet)

2023-03-13 14:37:02 506

原创 理解java反射

使用Java反射机制,我们可以在程序运行时获取要创建的类的Class对象,然后使用Class对象的newInstance()方法来动态地创建对象。注解框架:在注解框架中,我们可以使用注解来标注Java类、方法或属性,然后在运行时使用Java反射机制来获取这些注解,并根据注解中的信息执行相应的操作。在Java中,创建一个对象通常需要在代码中使用new关键字,并指定要创建的类的名称和构造函数的参数等信息。动态代理需要使用Java反射机制来获取被代理对象的信息,并在代理对象中动态地生成相应的方法。

2023-03-10 16:26:07 678

原创 JAVA JDBC连接mysql数据库

什么是驱动?驱动是指计算机系统中的一种软件程序,它用于控制硬件设备的操作。每个硬件设备都需要与操作系统进行通信,而操作系统需要知道如何与每个设备进行通信,这就是驱动程序的作用。什么是jdbc?JDBC 是 Java 数据库连接的标准,它是 Java SE 平台的一部分。它提供了一种标准的方法来访问各种关系型数据库,如 MySQL、Oracle、Microsoft SQL Server 等。JDBC 通过驱动程序实现与各种不同类型的数据库的连接,开发者需要使用不同的驱动程序来连接不同类型的数据库。

2023-03-10 15:24:17 963

原创 计算机网络中速率和带宽的区别

假设您有一条1兆比特每秒(Mbps)的宽带连接,这意味着您的网络连接的带宽为1 Mbps,即该连接可以支持每秒传输1兆比特的数据。同样地,在计算机网络中,网络连接的速率也可能受到各种因素的影响,例如网络拥塞,信号干扰,路由器性能等。即使您的生产线可以每小时生产1000个面包,但是由于您的货车带宽限制,每次只能运输100个面包。假设您是一名面包店的老板,您的面包生产线每小时可以生产1000个面包(速率),您的货车每次可以装载100个面包(带宽)。

2023-03-08 23:34:18 5001

原创 telnet认识及初步应用

你可以把它看成一种协议,它也可作为工具在开发中链接端口测试端口测试,更重要的是可以用来远程登录web服务器,类似ssh。telnet是远程控制web服务器的主要方法之一。telnet是TCP/IP协议族里的一员,是位于OSI模型的第7层---应用层上的一种协议。这里先撇开一下写一下这里浏览器和服务器建立连接的流程,算是目前我对网络的愚见。默认情况下windows的telnet服务是关闭的,需要我们手动去开启。以下是用python写的简单服务器。这里我是直接在vscode跑的。

2023-02-26 10:53:52 329

原创 伪造ip的headers

Referer:127.0.0.1x-remote-IP: 127.0.0.1x-forwarded-for: 127.0.0.1x-remote-IP: 127.0.0.1x-remote-ip: 127.0.0.1x-client-ip: 127.0.0.1x-client-IP: 127.0.0.1X-Real-IP: 127.0.0.1client-IP:127.0.0.1x-originating-IP:127.0.0.1x-remote-addr:127.0.0.1X-Fo

2022-12-08 15:28:27 1209 1

原创 2022安洵杯babyphp

这个题没打出来有点可惜,感觉做的都差不多了,不过有些地方确实没理解,还是理解不到位先来看序列化,这个序列化是不难的,不过有一个小坑,我们先理一遍顺序flag.php这里最后肯定要调用C类的uwant函数,可以由A类的__invoke()方法触发,A类的__invoke()方法由C类的__toString()方法触发,这里有一个小坑,我当时一直以为这个tostring是A类的 $this->a = "babyhacker";触发的,结果一直没跑通,后来看没用到B类,尝试用B的die($this->a);

2022-11-28 22:31:00 1041

原创 [安洵杯 2019]不是文件上传

能用来读flag.php的代码是这个destruct方法,这里我们可以改config的值的,注意他是protected类型的变量,要进行%00构造一下,此外他在show.php那个页面会进行一个反序列化,并且是输出值的,我们就看看哪里能把这个构造的序列化字符串塞进去让它成功执行反序列化就好。upload函数调用save函数,save函数里传入的值是$data,这也是后面要进行insert的内容,我们跟进getfile函数。最终执行的sql语句是这句,他在insert_array函数里。

2022-11-19 14:41:03 649

原创 [ISITDTU 2019]EasyPHP

可以看到它过滤的还是不少的,像这种有过滤代码量又少的题,无非就是各种花样绕,什么亦或呀,自增呀之类的,推荐先看p神的那几篇文章,我们也可以看到他这里是没有ban掉亦或符号的,可以会用得上,这里我先尝试了一下取反。这里的意思大概是利用这个print_r(scandir(.))里面已经有的字符亦或得到里面的字符,那这个可以被已有的字符亦或出的字符就不用再使用了,减少一个坑,但是会让payload变长很多。没有屏蔽print_r()和scandir() ,想办法构造出print_r(scandir(.))

2022-11-10 00:47:34 242

原创 [GYCTF2020]Easyphp

nickname),那这个类它反序列化出来字符串大括号{}里面只有俩元素,一个age的键值对一个nickname的键值对(这么说也不太严谨,就是那个意思吧),然后操作空间就来了,紧接着这个反序列化好的字符串进到safe函数里进行一个反序列化字符串的逃逸,nickname可以很长,union被替换成hacker等方式都可以用来进行逃逸。这个是放在Info类的nickname里作为字符串出现的,为了保证Info类序列化的可用性,我们需要把这些字符串逃逸到Info类的第三个属性$CtrlCase里。

2022-10-31 11:38:06 718

原创 [MRCTF2020]Ezaudit

还是比较好做出的,这个题考查的是伪随机数,后面的代码他把公钥给出了,我们可以根据公钥计算出种子,再计算出私钥,然后拿着私钥去登陆,登陆的那个sql语句是可以闭合的。可以发现,我这里让它跑出28位,前16位是公钥,能和他给的公钥对上,后12位是私钥,这样私钥就有了。拿跑出的序列去跑php_mt_seed脚本。稍微闭合一下那个sql语句,拿到flag。再拿跑出的种子去跑出随机数。御剑扫描出www.zip。

2022-10-30 11:15:04 97

原创 [GKCTF 2021]easycms

先去 设计-> 高级 ,尝试修改一下代码,他会报错,复制它报错的目录,比如我这里复制。第四步,连接蚁剑getshell, flag在根目录。找到后台是admin.php,弱口令登陆。下面提示了使用的cms和cms版本。找这个版本的cms利用方式就好了。搜索一下发现他存在命令执行漏洞。第二步,修改一下原始id保存。

2022-10-30 11:13:31 1004

原创 SSRF漏洞理解进阶&SSRF+gopher打内网(redis、mysql、fastcgi)& SSRF相关基础概念

SSRF漏洞理解进阶&SSRF+gopher打内网(redis、mysql、fastcgi)& SSRF相关基础概念。首先要了解几个概念:内网&外网代理curlgopher、ftp、dict伪协议file_get_contents()、 fsockopen() 、curl_exec() 等函数。

2022-10-25 01:45:37 7740

原创 CH4INRULZ vulnhub靶场

这里只要重点看注释里的内容,看起来是用户名密码组合,用户名frank,密码貌似是被加密的,把用户名密码用txt保存,用john解密一下。打开发现给了一个登录框,还没法登陆,再看别的地方,继续扫一下备份文件,在linux系统里面bak结尾的备份文件比较多。能读取到文件,可以尝试读取刚刚文件上传的那个php文件,以找到我们图片马上传的路径。转到var路径看一下文件目录,找一个比较高的用户权限目录上传脏牛,那个a可以。用获取到的这个用户名密码登陆刚刚的development目录里面的登录框。

2022-10-25 00:27:52 670

原创 DASCTF2022十月挑战赛部分WP

DASCTF2022十月挑战赛部分WP.看题目源码,有4个类,开始的时候看到了fine类里面的call_user_func,最终应该是打进这个地方,另外看到了 secret_code 类里面的hint()函数,所以我的想法路线是先想办法调用出这个hint()函数,然后根据给出的hint进入那个call_user_func,然后就开始找链子,但是最终hint()函数给出的东西真是让我摸不到头脑,就只好不管这个hint直接打进call_user_func进行rce了。

2022-10-25 00:04:56 1301

原创 内网渗透学习 day2

复制kali中的php-reverse-shell.php(文件位于 /usr/share/webshells/php)中的内容,修改其中的IP和端口。他的uid是1000,uid为0是管理员,1-999是系统账号,1000及以后的是普通用户。这里应该是暴露了这个网站使用的cms和版本号,找一下这个版本有没有能利用的漏洞。下面就是提权,利用脏牛提权,这个利用方式好像是利用了linux的内核漏洞。我们假设这个用户的密码和刚刚数据库的密码是一致的,用ssh连一下。然后看这个账户的权限信息,是一个低权限的。

2022-10-23 23:45:48 405

原创 内网渗透学习 day1

燃烧的墙壁和恶魔无处不在,即使您值得信赖的工具也会在此任务中背叛您。在获得根之后,您确实会同意“地狱不是一个糟糕的地方”。之后我们使用Hydra进行爆破,这是一个自动化暴力破解弱密码的工具,是一个支持多协议的爆破工具。由于靶机和我们的攻击机处于同一个内网环境下,首先ifcongif命令查看本地ip。我们再通过浏览器访问上传好的webshell,账号密码就是我们刚刚爆破出的。访问一下,他要本地访问,我们抓包改XFF为127.0.0.1以后是这样的。密码使我们刚刚修改文件里的东西,刚刚我们设置的密码是666。

2022-10-20 23:06:05 234

原创 BUUCTF WEB 第四页WP(持续更新)

这个题感觉啥也没有,翻了半天,才找到有个传参的地方,第一个参数叫search,就是查询,这后面跟的地名,自己感觉有问题,但是不看别的师傅的博客,我可能也不会往sql注入这方面来想,自己还是太菜了。那搜索的地方变成用户为2的时候了,我没有注册用户为2的号,所以他这里不回显,我甚至觉得这个漏洞可以搜到别人的简介,那这里首先可以考虑联合查询注入。他的逻辑是文件内容前五位不检测,后面的会进行严格的过滤,合格的就变成可执行php,不合格的就die掉。//,则}闭合了a(),同时//注释了后面的内容。

2022-10-13 21:40:57 5321

原创 October 2019 Twice SQL Injection

那搜索的地方变成用户为2的时候了,我没有注册用户为2的号,所以他这里不回显,我甚至觉得这个漏洞可以搜到别人的简介,那这里首先可以考虑联合查询注入。这个都说twice sql injection了,就尝试二次注入。我注册用户名 2’# 他这个主页就没有那个没有简介的字。为啥呢,,,,我就猜,我想这里简介显示的sql语句是这样的。然后呢,这里我刚刚注册的用户名是2’#,那这个语句就变成。注册一个账号登录以后有一个改个人简介的地方。

2022-10-13 18:43:18 579

原创 [GXYCTF2019]StrongestMind

拿到这个题稍微分析了下流量,没什么发现,它这个题又只需要计算成功1000次,所以打算还是写脚本。小菜鸡写的脚本终于跑起来了,5555555555555555555。

2022-10-13 00:11:22 141

原创 [网鼎杯2018]Unfinish

另外,‘0’+123+'0’这样的注入进去是123,这样可以直接读到内容,这里的数字嘛,我们可以把想得到的东西进行两次hex()就好了,但是两次hex()之后注入数据库的数字变成了小数,这里可以用substr截取,而逗号被过滤了,如何不用逗号进行截取又是新的知识点,学到了:substr(str from 1 for 10) 这个样子。这个跟php的弱类型差不多的,‘’+(我们的盲注)+‘’,我们盲注的结果返回1那这里username就会变成1,反之为0。注册的时候用户名这样写:(注意单引号不能漏)

2022-10-11 00:30:55 739

原创 [CISCN2019 总决赛 Day2 Web1]Easyweb

自己试了半天,这里转义函数和替换连用有业务逻辑漏洞,比如我输入\0,按照它本来的设计应该是想把这个\0替换为空,但是\0会先被转义函数转义为\\0,这样再进行替换的时候就会剩下\,不知道怎么利用,看了下wp,才发现很巧妙,这里id被过滤完后剩下的转义符\,刚好可以转义原来的sql语句中id的后一个单引号。另外,通过抓包发现image.php后面跟了一个id参数,其中1,2,3有不同的图片回显,可能是sql注入。这个脚本实在是太垃圾了,我就尝试写了一下二分法脚本,竟然搞出来了,我感到很开心。

2022-10-03 16:33:52 730

原创 BUUCTF web第三页WP

简单来说,就是mt_srand(seed)分发种子,相当于进行产生随机数的初始化,然后通过mt_rand函数获得种子,但是这个随机数并不是真正的随机,他是有可预测性的,如果我们能获得种子,就一定程度上可以获得产生的随机数,根据这个随机数进行验证的部分就不安全了。这个题的逻辑就是在注册的地方进行过滤,我们绕过过滤登陆进去以后,有一个改密码的功能,他是用双引号闭合用户名进行改密码操作的,我们注册好的用户名双引号结尾就可以闭合,后面跟我们进行报错注入的代码就好,至于改密码怎么改是随便填的,重点在注册好的用户名。

2022-10-03 00:20:37 1123

原创 解决光影精灵锁win键的问题

一开始我还以为是我设置错了什么东西,或者机械键盘的锁win键功能,后来想起来它自带一个暗影精灵的软件用来加速游戏,里面有锁win键的功能。点击“恢复”以后,他会变成“手动增强”按钮,这个时候把“禁用windows热键”取消勾选即可。进入OMEN GAMING HUB,点击优化器->配置增强程序。

2022-10-02 22:16:01 2144

原创 [RCTF2015]EasySQL

这个题的逻辑就是在注册的地方进行过滤,我们绕过过滤登陆进去以后,有一个改密码的功能,他是用双引号闭合用户名进行改密码操作的,我们注册好的用户名双引号结尾就可以闭合,后面跟我们进行报错注入的代码就好,至于改密码怎么改是随便填的,重点在注册好的用户名。进入修改密码页面会报错,说明是二次注入,并且是双引号闭合的报错注入。它输出长度是有限的,再倒置输出一下就好了。然后想尝试写一下脚本,,,,en,,,再根据这种方法获取flag。注册用户 admin"

2022-10-01 21:39:33 1007

原创 [GWCTF 2019]枯燥的抽奖

简单来说,就是mt_srand(seed)分发种子,相当于进行产生随机数的初始化,然后通过mt_rand函数获得种子,但是这个随机数并不是真正的随机,他是有可预测性的,如果我们能获得种子,就一定程度上可以获得产生的随机数,根据这个随机数进行验证的部分就不安全了。这个题里面,我们要爆破的应该是这一段mt_rand(0, strlen($str_long1) - 1),相当于mt_rand(0,61), 这个所谓的产生的随机的字符串,就是通过这个0-61的随机数选20次选出来的。这个题考察的是伪随机数。

2022-09-29 20:32:22 770

原创 无数字字母rce总结(取反、异或、自增、临时文件)

无数字字母rce的知识点、poc、exp(取反、异或、自增、临时文件)

2022-09-27 00:08:03 6667

原创 PHP代码执行漏洞汇总

如eval()、assert()、``、system()、exec()、shell_exec()、passthru()、 escapeshellcmd()、pcntl_exec() 等。(黑哥那个挑战2 http://hi.baidu.com/hi_heige/blog/item/505b2828da5b18f499250a9b.html)文件包含函数在特定条件下的代码注射,如include()、include_once()、 require()、require_once()。h=phpinfo() 即。

2022-09-25 20:37:30 483

原创 sqllabs靶场通关记录

id=1' and substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='0' %23 跑出第一张表为emails,把后面的limit 1,1 一次次换,得到四张表。id=1' and and if(ascii(substring(database(),1,1))='110',sleep(5),1) %23 跑assic码,跑出来是security。

2022-09-25 20:31:16 391

原创 解决vs code终端无法执行命令的问题

解决vs code终端无法执行命令的问题。最近在学flask,它需要利用命令行创建虚拟环境,而我比较喜欢用vs code,在执行activate命令的时候不能执行,在此记录一下解决方法在快捷方式这里目标后面添加 –disable-gpu,-前面的空格不能少。

2022-09-18 16:04:05 1080

原创 本地搭建靶站进行漏洞复现和防御(SQL注入、文件上传、XSS漏洞的多种形式)

本地搭建靶站进行漏洞复现和防御(SQL注入、文件上传、XSS漏洞的多种形式)。本地搭建靶站进行测试,旨在提高自己的开发能力以及对漏洞的理解。这个靶站其实可以说是我出的第一道web题吧,里面藏了三个flag,拼接为一个完整的flag三个flag的位置分别在:数据库中、admin用户的cookie中、网站源码文件flag.php中,分别对应sql注入漏洞、xss漏洞、文件上传漏洞,我想出第四个flag部分,对应csrf漏洞。

2022-09-17 00:01:40 1451

原创 借[强网杯 2019]高明的黑客进行python脚本练习

借[强网杯 2019]高明的黑客进行python脚本练习

2022-09-15 22:39:40 597

原创 PHP变量覆盖漏洞试验随笔

PHP变量覆盖漏洞试验随笔

2022-09-15 18:27:44 438

原创 typora光标异常

typora光标异常

2022-09-15 17:23:04 209

原创 BUUCTF web第二页WP

写一下我得理解,首先这里的id是障眼法不用管,foreach遍历GET数组,传到complex()函数里,$str匹配$re这个正则表达式并且替换为\1,这里\1有特殊含义,e模式下我们的$str会被存入缓冲区,而这个1会导致回调缓冲区的内容,这个时候如果$str是我们想办法利用的getFlag(),再get传入cmd,代码执行不就成了么,最后要说那个$re写成全部匹配就好,像这样: \S*)/),所以会一直递归,?),也就是它把类似a(b(c()d())))这种的全替换为空后只剩下;

2022-09-12 11:52:15 516

原创 PHP escapeshellarg()+escapeshellcmd() 导致的漏洞

PHP escapeshellarg()+escapeshellcmd() 导致的漏洞

2022-09-12 11:00:06 738 1

原创 S7COMM协议分析

S7COMM协议分析

2022-09-11 19:44:41 1734

原创 纵横网络靶场 刷题记录

纵横网络靶场 刷题记录

2022-08-31 10:40:29 657

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除