- 博客(69)
- 收藏
- 关注
原创 【Langchain实践】Few-shot examples for chat models 学习记录
langchain实践中的few-shot examples for chat model总结
2024-05-09 22:57:27
733
原创 【Langchain实践】FewShotPromptTemplate实践总结
langchain的FewShotPromptTemplate实践总结。
2024-05-08 08:59:40
1283
原创 无法访问github的问题与解决方法
有时想去github下载一个文件,或者查看一个教程,已经通过搜索引擎搜到相关内容,可是却无法打开github网站。现在有一些镜像网站或者流量转发网站可以缓解这个网络访问问题。在使用这些网站时,注意个人隐私的保户。
2024-01-07 15:51:45
1580
原创 ctfshow 七夕杯(复现)
最终执行命令的语句是 $num1$symbol$num2 拼接起来的,而且过滤()不能调用函数,所以根据语言结构是 include、require、echo这种语句,试着去包含文件。这个题可以理解为注入,在整个计算语句中注入我们想要执行的命令语句,只不过是过滤()之后不能调用函数执行。我开始这样做了,但是最后并没有做出来的原因是:我一直在网站根目录下看有没有生成文件,实际上这条命令执行在api这个目录下,生成的文件也在这个目录下,所以需要到/api这个目录下去寻找是否生成文件。,尝试别的地方,发现。...
2022-08-07 00:38:19
2107
3
原创 # Dasctf 7月赋能赛 WP
每次通过比赛都能学到很多东西,对于之前的知识点有一知半解的地方重新认识了,比如ssti的盲注,以前只知道{{}}、{%%}能执行语句,但是没有想过他们的区别,通过一道ssti的题目就能更加深入地区分这两者的区别。...
2022-07-27 16:35:09
814
原创 HF2022-EzPHP复现
由于程序是运行时动态加载链接的库,如果让程序加载一个恶意的文件,那么就可以劫持程序的运行,从而可以绕过disable_function,执行命令。LD_PRELOAD,是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为。构造更大的二进制文件,通过在一个so文件尾部追加脏字符。...
2022-07-27 15:56:31
628
原创 LeetCode-栈和队列刷题
复习完栈和队列的基础知识,然后通过leetcode的几道题目加深理解,更多的是对于栈和队列的运用,而没有对于栈和队列操作的具体实现。
2022-07-20 21:42:13
407
原创 剑指Offer 30. 包含min函数的栈
写在前面:有时看一看数据结构与算法题,加深对于数据结构的理解,同时也是开阔自己的思路题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)题目分析这个题目中关键点在于实现 min函数的时间复杂度是O(1),一般得到栈中的最小值是要遍历整个栈的,现在要求达到O(1)的时间复杂度,采取空间换时间的做法定义节点,增加一个最小值属性(这个的意思是以当前节点为栈顶,栈中元素的最小值)class Node
2022-05-28 00:01:12
369
原创 剑指Offer-09.用两个栈实现队列
题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )分析思路两个栈来实现队列,因为队列是先进先出,而栈先进后出,设置两个栈(s1, s2),进行如下操作压栈操作都是将数据 压入 S1出栈操作都是将数据从 S2 弹出数据从 S1 到 S2 的过程:当遇到弹栈操作的时候,如果S2里面有数据,那么直接弹出 栈顶元素;如果S
2022-05-19 22:52:12
205
原创 python的int、bit和byte操作
1、python的bin()函数作用:将一个整数转变为一个前缀为“0b”的二进制字符串(返回的结果是一个字符串类型)>>> bin(3)'0b11'>>> bin(-5)'-0b101'去除前面的0b前缀方法>>> format(3, 'b')'11'>>> format(3,'#b')'0b11'>>> bin(3)[2:]'11'2、python的bytes操作函数bytes.he
2022-05-10 23:22:44
7710
原创 2022年春秋杯网络安全联赛春季赛勇者山峰-Mercy-code[WEB]
Mercy-code这道题参考这篇博客打开环境,很明显的无参数rce类型的题思路一 读文件,一般是要构造 . … / 能改变目录,进行文件读取思路二 RCE,可以利用请求头里面的字段等传入命令<?phphighlight_file(__FILE__);if ($_POST['cmd']) { $cmd = $_POST['cmd']; if (';' === preg_replace('/[a-z_]+\((?R)?\)/', '', $cmd)) {
2022-05-09 09:00:00
1222
原创 编译原理知识总结
文章目录编译原理知识总结1、基本概念1.1 编译器与解释器1.2 编译器前端1.3 遍的概念1.4 习题编译原理知识总结1、基本概念1.1 编译器与解释器翻译器 包含编译器和解释器,是一个更大的概念,跟平常英文翻译成中文一样,这里的翻译是将高级程序语言翻译成机器能识别的机器码(汇编指令)编译器 想到C语言,程序要执行,就要先编译成机器码,然后才能执行解释器 python为代表,程序一边翻译成机器码,一边执行1.2 编译器前端词法分析器 涉及到 正则、DFA(确定的
2022-05-07 23:56:22
1400
原创 Java反射-Class类
反射思考:有没有方法,能在程序运行时去操作一个新建的类?反射可以做到,反射是java的一种操作类的机制,反射就是通过Class实例获取对应class的信息反射基本框架Class newclass= Class.forname(className);//获取类的Class对象(包括类的详细信息)//注意className必须是全限定名(全称)Constructor constructor = newclass.getConstructor();// 通过Class 对象获取构造方法对象(
2022-05-07 21:21:14
343
原创 python-socket编程-一个简单的嗅探器
一个嗅探器sniff.py import socketHOST = socket.gethostbyname(socket.gethostname())#gethostname 返回当前运行python解释器的机器名#gethostbyname 将主机名转换成IPv4格式地址,s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)#这是socket的类型,采用raw类型的套接字,接收 IP报文, 还
2022-05-06 23:57:12
1324
1
原创 python-socket编程
一、基本原理1、创建socket对象s = socket.socket([family[, type[, proto]]])参数类型:family: 套接字家族,可以使AF_UNIX或者AF_INET。type: 套接字类型,根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM,也就是TCP和UDP的区别。protocol: 一般不填默认为0。2、socket对象操作方法服务端s.bind(host, port) #绑定主机和端口号 连接远程vps
2022-05-06 00:52:43
727
4
原创 http(s)代理服务器与搭建
写在前面:为了复现*ctf的oh-my-lotto那道题,补了一下关于代理方面的知识,顺便做一下总结文章目录1、代理透明度2、正向代理和反向代理3、hosts文件4、设置http_proxy、https_proxy5、tinyproxy的配置6、测试代理是否配置成功1、代理透明度全匿名代理普通代理全透明代理2、正向代理和反向代理正向代理,代理服务器代表客户端向服务端发送请求,这样可以隐藏真实的客户端反向代理表示,代理服务器代表服务端向客户端返回请求,这样可以隐藏真实的服务端3、ho
2022-05-02 01:10:57
3562
原创 [RoarCTF 2019]Easy Java
写在前面:java的目录泄漏和任意文件读取只能看着wp做题,思路先找/WEB-INF/web.xml,从里面找路由信息和文件信息,可以看到flag路由小坑:get方法下载不了,换成post方法下载文件下载 /WEB-INF/class/com/wm/ctf/FlagController.class文件,然后反编译,base64即可看到flag小坑:xml文件里面的.连接的是路径,要换成/反编译工具...
2022-05-01 11:28:00
836
原创 python的re模块
文章目录re模块1、基本结构2、常用函数2.1、match函数2.2、search函数2.3、findall函数2.4、sub函数2.5、group函数与groups函数3、一些要注意的写在前面:以前有想要学爬虫,没有坚持学习下来,现在用re模比较多,于是系统学一下,顺便记录下来,提高使用re模块的效率re模块1、基本结构import repattern = r''#原生字符串模式#也可以用下面的定义模式pattern = re.compile('正则表达式')string = ''
2022-04-29 09:36:58
918
原创 Flask模板注入编码姿势绕过-CMCTF
写在前面:通过这次比赛学到flask模板注入几个比较sao的绕过姿势参考文章如下ctf中flask的sstixctf高校网络安全挑战赛-华为云专场的MINE21、参考MINE2这道题目的一些过滤方法,以及一些替代方法2、主要是利用attr获得属性,一些其他的编码方式如十六进制编码绕过,unicode编码绕过,格式化字符串绕过以及上面图片中提到的十六进制转字符串绕过格式化字符串绕过payload?msg={% print(session|attr("__init__"))|attr("__
2022-04-25 00:48:11
1237
原创 [NCTF2019]phar matches everything
写在前面:这篇文章并没有把这道题目做出来,一直找不到内网提供PHP-FPM的主机ip,就一直卡在这个地方,目前自己的能力不够,还不能解决这道题;现在将这篇做题的记录发出来,记录学习过程,希望将来回过头来再做这道题的时候能得心应手第一部分 phar反序列化+文件头和文件名检测绕过buu平台上给的github源码链接失效了,直接看的wp,一个简单的pop链构造,然后利用phar反序列化exp.php<?phpclass Easytest{ protected $test = '1';}
2022-04-20 00:20:11
570
原创 BUU CODE REVIEW 1
写在前面:这道题传引用的知识点,让我意识到php机制的一些不同,php有着自己的语言特性一篇详细介绍php引用特性的文章<?phphighlight_file(__FILE__);class BUU { public $correct = ""; public $input = ""; public function __destruct() { try { $this->correct = base64_encode(uniq
2022-04-17 18:40:38
3370
原创 [0CTF 2016]piapiapia
写在前面:反序列化逃逸1、试了sql注入,看了请求标头,什么都没有,试下有没有源码,发现存在www.zip2、进行代码审计,在config.php文件里发现flag,应该是要读取config.php才能拿到flag3、发现读取文件的函数profile.php尝试利用,往上面找看$profile[‘photo’]是不是可控,发现不可以利用,因为不知道md5加密之后的路径update.phpnickname这个参数可控,尝试反序列化字符串逃逸,注意到nickname会有长度限制,用数组绕过
2022-04-17 16:32:16
1776
原创 [网鼎杯 2020 朱雀组]Nmap
写在前面:利用nmap进行操作,或写shell,或读文件,参考[BUUCTF 2018] Online Tool涉及到nmap主要参数-oN 以标准格式保存-oG 以Grep格式保存-iL 读取文件并保存绕过escapeshellarg和escapeshellcmd1、上传一个webshell绕过过滤php文件名用1.phtmlshell中用<?=?>' 127.0.0.1 -oN 1.phtml <?=@eval($_POST[1]);?> '传入
2022-04-16 22:24:33
474
原创 [SWPU2019]Web1
写在前面:这道题练习的是无列名注入,一步一步进行构造即可1、通过测试(这个要自己找,不断的测试),广告名有sql二次注入(存入特殊广告名,查询的时候会报错)2、闭合语句因为过滤 -- # or 空格,尝试去闭合语句,构造语句'/**/||/**/'1'='13、尝试联合注入,先要找到多少列1、#order by 中的or被过滤了,因此不能用2、'/**/group/**/by/**/22,' #group by根据一个或多个列对结果集进行分组'/**/union/**/select/
2022-04-16 21:19:35
808
原创 python操作sqlit3数据库踩坑记录
1、HTML注释<!-- ... -->注释标签用来在源文档中插入注释//和/* */在html里也是常用的注释,但只能用在js和CSS语言,不对HTML语言起作用!2、python操作sqlite数据的fetchone()、fetchMany()、fetchall()函数使用fetchone()查询一条信息,使用fetchmany(3)查询3条信息,fetchall()查询全部信息conn = sqlite3.connect('数据库绝对路径/相对路径 + 数据库名')cu
2022-04-16 08:53:08
621
原创 python——bottle框架开发采坑记录
写在前面:突然有一个任务,需要利用bottle框架开发一个小网站程序,第一次接触到MVC的模型,开发过程中最大的一个感受就是力不从心,需要的编程语言知识很缺乏,特别是前端的知识,但最大的收获是能够自己去阅读文档,自己去解决问题,一步一步实现自己想要实现的功能bottle框架的官方文档W3Cschool各种官方文档1、set_cookie() missing 1 required positional argument: ‘self’出错的原因:from bottle import BaseRe
2022-04-15 01:40:19
980
原创 [MRCTF2020]Ezpop+PYWebsite
1、打开环境,直接给源码<?php//flag is in flag.php//WTF IS THIS?//Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95//And Crack It!class Modifier { protected $var; public function
2022-04-12 00:49:48
457
原创 Phar反序列化学习
写在前面:phar是一个比较经典的反序列化漏洞,通过学习这个漏洞,进一步加深对于反序列化漏洞的理解,同时增强自己的代码审计能力一、原理学习1、A stub(可以理解为识别phar文件的标志)必须以 __HALT_COMPILER();?>结尾2、一个生成phar文件的Demo注意:要将php.ini中的phar.readonly 选项设置为Off,否则无法生成phar文件phar.php<?phpclass Test{}$phar = new Phar("phar.pha
2022-04-10 12:48:08
679
原创 蓝桥杯—动态规划
写在前面:通过在B站看闫氏dp分析法,进一步深入理解动态规划,这里学完之后总结一下,方便复习,因为这也是一个常看常新的内容动态规划的核心问题:有限集中的最值问题(最大值、最小值、数量、存不存在)分析过程:分为两个阶段1、状态表示包含:集合和属性(max、min、bool,一般问的是什么,属性就是什么)2、状态计算a、将一个整体的问题划分成多个子集问题(如求最大值,可以先求每个子集的最大值,然后求子集间的最大值)b、怎么划分子集?(要求不重复、不遗漏)划分依据:寻找最后一个不同点3、经典问题
2022-04-06 00:25:38
1266
原创 蓝桥杯-并查集的运用(二)
写在前面:越是刷题,越发现自己不会的越多,现在的思路是把之前学过的知识点复习一下,把刷过的题重新过一遍,避免犯同样的错误题目一 国王的烦恼这是一道值得学习的题目,整体的框架还是并查集,但在并查集的基础上,比较偏重于对思维的考验,这道题目运用到了反向思维,能想明白就很简单题目链接题目描述C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。如果两个小岛间的所有大桥都不能使用,
2022-04-05 00:12:05
367
原创 蓝桥杯-完全背包问题
写在前面:考试临近抱佛脚,只能是多熟悉基础的算法,掌握核心,最近今天把背包问题好好学一学,通过题目来学习算法题目一(经典完全背包)题目有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。状态集合(确定dp数组的含义)dp[i][j] 表示从前i个物品中选,总体积不超过j状态转移方程(确定怎么由更小的结构得到dp[i][[j])方程一:dp[i]
2022-04-03 00:08:47
558
原创 两个好玩的题目——异或
写在前面:今天看到阮一峰博客上有关异或的文章,异或总是可以给人眼前一亮的感觉,有助于发散自己的思维,记录一下题目一一个数组包含 n-1 个成员,这些成员是 1 到 n 之间的整数,且没有重复,请找出缺少的那个数字。这里利用异或的性质两个相同的数异或为零0与其他数异或得其他数自己A[0] ^ A[1] ^ ... ^ A[n-2] ^ 1 ^ 2 ^ ... ^ n解决代码class Solution: def missingNumber(self, nums: List[i
2022-03-31 20:35:53
322
原创 汇编语言入门教程
一、汇编语言是什么 汇编语言是二进制指令(操作码)的文本形式,与指令是一一对应的关系。比如加法指令00000011写成汇编语言就是ADD二、前置知识——寄存器 1、寄存器不依靠地址区分,而依靠名称,CPU通过名字去具体的寄存器拿数据。 2、寄存器的种类 分为通用和专用寄存区EAXEBXECXEDXEDIESIEBP 栈的基地址,不发生改变ESP 用来保存当前栈的地址(栈指针的位置,值会随着压栈、弹栈发生变化)三、前置知识——Heap(堆) 由用户主动请
2022-03-31 16:01:16
12103
原创 NISACTF2022公开通道(复现)
目录middlerce(复现)join-us(复现)hardsql(复现)middlerce(复现)<?phpinclude "check.php";if (isset($_REQUEST['letter'])){ $txw4ever = $_REQUEST['letter']; if (preg_match('/^.*([\w]|\^|\*|\(|\~|\`|\?|\/| |\||\&|!|\<|\>|\{|\x09|\x0a|\[).*$/m',$txw
2022-03-31 11:38:23
5153
原创 DASCTF x SU 2022
目录ez_pop 题calc(复现)ez_pop 题简单的pop链分析,可以得出如下的一条链fin:__destruct => what:__toString() => mix:fun => crow:__invoke() => fin:__call =>mix:get_flag写poc<?phpclass crow{ public $v1; public $v2;}class fin{ public $f1;}class what{ pu
2022-03-30 22:26:53
1067
原创 记一次过滤注释符的sql注入
写在前面:这个是一个很简单的联合注入,但是因为我对于这种通过输入来闭合,从而实现注入不是很熟悉,因此记录一下1、fuzz测试发现会给出过滤的字段black_list is /if|and|\s|#|--/i不能通过注释掉后面的内容来闭合,所以这里要通过 '构造闭合用1'or'1'='1测试有提示,说明闭合成功2、联合注入爆表名username='/**/union/**/select/**/concat(table_name)/**/from/**/information_schema.
2022-03-29 23:09:00
1711
2
原创 NISACTF2022公开通道
NISACTF2022公开通道checkinlevel_up第一层 robots.txt第二层 md5碰撞第三层 sha1碰撞第四层 parse_url解析漏洞第五层create_function()注入bingdundunbabyserializebabyuploadeasyssrfis secret(原题)popchain(原题)middlevel(原题)题目checkinurlencode,因为解释器读取出来的才是真正的顺序ahahahaha=jitanglailo&&%E2%
2022-03-29 19:00:00
7497
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅