- 博客(29)
- 收藏
- 关注
原创 西南科技大学竞赛与实践——实验一Paillier算法及其实现
(以什么模型,什么算法,实现什么样的功能,达到什么样的实验效果)Paillier加密系统基于同态加密模型,即允许用户在不共享密钥的情况下进行加密和解密操作。它是一种概率公钥加密系统,基于复合剩余类的困难问题。Paillier算法可以用于实现数据的安全存储和传输,达到保护数据的隐私和完整性的实验效果。通过使用Paillier算法,数据可以在不暴露明文数据的情况下进行加密和解密操作,从而实现数据的安全存储和传输。
2024-11-05 14:23:31
1468
原创 西南科技大学C++实验作业3——容器使用和文件输入输出流
当被捕食者移动到捕食者的捕食范围(捕食范围由其生物品种和其生命值确定,生命值高扑食范围广)内时,捕食者将对其进行捕杀,被捕食者的生命期结束,同时捕食者的生命值恢复到最佳。分析系统图书管理系统是对学生、教师信息和图书信息进行管理,学生基本信息包括学号,姓名,院系,最大借阅图书数量属性,教师基本信息包括工号,姓名,院系,最大借阅图书数量属性,图书基本信息中包括图书号,书名,作者,出版社,图书数量属性,要求输入、输出、修改、查询以上信息功能, 设计并实现功能。2)依据自己之前作业2所选参考,不得进行更换。
2024-11-05 13:55:39
1342
原创 西南科技大学C++实验作业2——继承派生多态_代码
将系统画布设计为一个组合类,接收输入消息部分,使用鼠标事件进行绘制,该组合类组织已经绘制的图形对象,优化设计,该类包含基类(图形类)对象指针数组或动态数组(vector),将多种子类的对象统一到基类指针数组的数据结构下进行统一处理,利用基类指针调用虚函数,各个子类对象不同的功能仍然能够发挥出来。在类的设计中增加生态系统或者草原类的设计,包含多个狼,羊,草的对象,并将狼,羊,草不同的种类的生物对象统一到基类指针数组(生物对象指针)或动态数组下来,统一为一个数据类型的数组。查看当前系统的基本情况。
2024-11-05 13:40:41
750
原创 西南科技大学C++作业1——组合依赖关系实验代码
合理设计类与类的组合关系,即一个类要嵌套另一个类的对象作为成员变量,根据问题的需要可以是同一个类的多个对象(可以使用对象数组),也可以是不同类的多个不同对象。让所设计的功能发挥作用。对学生和图书进行抽象,抽象出应有的成员变量,和基本的初始化,修改等成员函数,学生可以发起借书的操作,这是一种依赖关系,在学生类中将设计相应的成员函数体现这一功能操作,合理即可,可以用输出借书是否成功的结果,有一定示意就可以。其他操作:计算得到正确答案,输入自己的题目的答案,向题库内增加题目,在题库内删除题目,查询题库的题目。
2024-11-05 13:15:38
849
原创 ctfshow文件包含web78~81
这里要将php改为大写的,但是上面的input协议就不用,这是因为我们的参数file是通过get方式传参的,str_replace函数检查也只是检查get方式传入的值,input协议中的php是通过post方式传参的,因此不用改,data协议的php是get方式传入的,于是需要大小写绕过。可以看到在上一道题的基础上,增加了对php字符串的过滤,但是值得注意的是,过滤是区分了大小写的,这就意味着,可以使用大小写绕过,但是这里的大小写绕过对input和data协议有用,对filter协议没有用。
2024-11-01 19:48:18
1445
1
原创 攻防世界 MISC miao~详解
下载压缩包,但是尝试解压的时候提示错误,刚开始以为是伪加密之类的,但是尝试了一圈之后,发现并没有问题。查看flag.txt文件的内容,是一串喵喵字符,这个题又学到了一种奇奇怪怪的编码方式:兽语编码。但是不管怎么找,都没有找到flag,后面用另外一个软件deepsound打开,一般音频文件我都是先用audacity打开,查看频谱图,得到CatCTF。于是老规矩,foremost工具分离一波,得到了一个wov文件。这道题不难,主要是学到了两点:deepsound和兽语编码!
2024-10-31 23:02:13
769
5
原创 [强网杯 2019]随便注
跟方法一差不多,就是没利用concat函数绕过,采用十六进制的方式实现绕过,将我们的查询命令:select * from `1919810931114514`十六进制编码得到:73656C656374202A2066726F6D20603139313938313039333131313435313460。值得注意的是,在构造payload的时候需要在十六进制编码的前面加上0x,以表示是十六进制的编码。可以看到有一列的名字就叫flag,我们的目的就是去得到flag的值。回显报错,说明就只存在两列。
2024-10-30 20:14:33
451
原创 [网鼎杯 2020 青龙组]AreUSerialz
通过前面的分析我们知道,read函数是通过process函数来调用的,如果op被置为1,就不会调用read函数,于是我们要绕过,可以将令op等于数字2,这样在强比较下,$this->op === "2"是不成立的,实现绕过。判断$op的值,如果$op=1调用write函数,如果$op=2调用read函数,并output读取到的内容。read函数执行写的功能,通过file_get_contents函数读取想要读取的文件,值得注意的是,,如果为字符2,就将op置为字符1,并将content置为空。
2024-10-11 16:21:17
1848
原创 [网鼎杯 2018]Fakebook
如果是数字型注入的话,我们传入的参数就会被当作数字来执行,于是返回结果就是no=1的界面;反之,如果是字符型注入的话,我们传入的参数值就会被当作字符来进行执行,于是返回的结果就是no=2的结果;可以看到的是blog现在已经变成了flag.php,那么也说明现在显示了flag.php文件的内容,我们这时查看源码,可以发现一串base编码的值,随便点击一个,比如这里我们点击admin,可以注意到的是,我们这里多了一个参数no,结合前面的登录,我们很快就联想到是不是存在sql注入呢?得到库名:fakebook。
2024-10-11 00:06:11
739
原创 CTFshow 命令执行 web37-web40
(5)将反转后的目录使用next函数,将flag.php文件输出,值得注意的是,我们这里输出的对象是文件,前面用到的print_r函数输出的对象是参数,于是我们这里就只能用show_source或者highlight_file。我们可以看到过滤了好多的符号,最重要的是单双引号,斜杠、逗号、以及$都过滤掉了,这意味着我们之前的哪些方法都用不了了。但是值得一提的是,这里过滤掉的是中文括号,英文括号并没有被过滤掉。有多种方式来实现,最常见的是利用hacker插件,将想要传输的参数,以post的方式传输。
2024-10-06 15:23:32
1251
原创 CTFshow信息搜集web1~web20详解
下载文件打开,发现了一个网站地址和登录账号,尝试访问这个地址,结果访问不了,仔细查看地址中的,your-domain,发现是“你的网站地址”的意思。访问www.zip,下载压缩包,得到两个文件,查看fla000g.txt文件的内容,发现是flag,拿去提交,发现是错的,这个是假的flag。点击忘记密码之后发现有一个密保问题,问的是归属地是哪里,于是我们想到了题目提示的邮箱,通过邮箱查询qq号归属地,发现是西安。于是输入西安,就重置了密码,用重置的密码登录即可,用户名依旧是admin,拿到flag。
2024-09-27 17:56:23
803
3
原创 布尔盲注——多种方式实现及利用burpsuite爆破
当我们改变前端页面传输给后台sql参数时,页面没有显示相应内容也没有显示报错信息时,页面呈现出两种状态,正常或者不正常。根据这两种状态可以判断我们输入的语句是否查询成功。不能使用联合查询注入和报错注入,这时我们可以考虑是否为基于布尔的盲注。
2024-07-25 15:39:38
1597
原创 几种常见的报错注入类型详解
报错注入是一种通过引起数据库报错并从错误信息中提取有用信息的SQL注入攻击手法;攻击者利用数据库在处理异常情况时返回的错误消息,来推断出数据库结构、字段名甚至数据内容;这种攻击方法依赖于数据库将详细的错误消息返回给客户端。若在测试时发现网页会回显sql相关的报错信息,那么此时就可以尝试使用错误注入这种方式进行渗透。可以利用报错注入的前提:就是页面有错误信息显示出来、保证函数能够正确执行。
2024-07-23 21:39:06
1971
原创 Union注入
但这只是一个列的名字,我们知道一个库中是有许许多多列的,于是我们进一步细化,table_schema表示的是数据库,database() 是一个函数,返回的是当前数据库的名字。利用phpMyAdmin查询数据库可以发现,id=1的内容有两列,但是我们回显的内容只有一列,于是便会回显id=1的第一列的内容。使用union select 查询,1,2,3表示的是三列的意思,也可以用其他数字来代替,只要是三个数字代表三列就行。分析报错信息:看\后面跟着的字符,是什么字符,它的闭合字符就是什么。
2024-07-20 23:41:08
706
原创 SQL注入基础
可以看到页面并没有改变,这是因为我们的命令有两行显示,第一行应显示id=1的结果,第二行显示联合查询union select 1,2,3的结果,但是我们的页面只能显示一行的结果。字符型:提交and 1=1和提交 and1=2有回显(提交and 1=2时如果是字符型注入,则不能将1=2解析,就会默认为是对的,从而回显id=id的值;说明无法找到第十的列名,即没有第十列,我们逐步缩小范围,可以看到,当查询到4时依旧报错,但是查询到3时有正常的回显,即可得到,前面查询的列数为3。得到了三列,尝试查询:?
2024-07-16 21:47:21
1487
原创 [RoarCTF 2019]Easy Calc1
再尝试打开f1agg文件,php中用“."来连接,file_get_contents函数用于读取文件内容,构造“/f1agg"如下。还有注意num前面要加一个空格用于绕过waf,在php中" num"(有空格)会被解释为"num'(没有空格)chr(47)表示的是ASCII码47对应的字符,即“/”,表示列出文件。在index文件夹里面可以看到,有个calc.php文件,尝试访问。scandir()用来获取目录文件。这是一篇简单的waf漏洞的题目。var_dump()用来打印。显示的是拥有waf保护。
2024-05-08 21:00:43
367
1
原创 Web学习日志(一)
_destruct是析构函数,会在对象的所有引用被删除或者当对象被显式销毁时自动执行,比如new完一个对象,当创建完成之后就不引用了,如果有赋值指向就会立马丢弃,触发destruct函数。绕过方法:序列化字符串中表示对象属性个数的值大于真实属性的个数时,就会跳过_wakeup的执行。_wakeup魔术方法在执行反序列化时,会被优先调用,而不会调用_construct方法。User-Agent:使服务器能够识别用户的操作系统,浏览器版本等。Host:指定用户自己想访问的web服务器的域名,IP,端口。
2024-04-15 23:44:48
905
1
原创 流量分析(持续更新中)
if((ascii(substr((select flag from flag),1,1))='40'),sleep(3),0) 如果,flag第一个字符为40,那么会运行sleep(3)程序,这个函数会让数据库服务器暂停三秒,这通常用于确认注入是否成功,因为延迟会表明注入代码被正确执行了,所以这道题我们可以看出是考察延时注入。随便点击一个tcp包追踪tcp流,仔细查看可以看到的是,在url那部分,有一个flag的存在,有点可疑。打开流量包,依旧是查看协议分级,可以得到的是依旧是tcp流最多,于是搜索。
2024-03-10 23:02:46
1865
1
原创 Web_php_unserialize
所以,这个序列化字符串表示一个名为"Demo"的类的一个实例,该实例有一个属性,其中第一个属性是一个长度为10的字符串" Demo file",第二个属性是一个长度为8的字符串"fl4g.php"。综上,能被该函数过滤的有“o:数字:”或者“c:数字:”,我们要想绕过preg_match()函数,就只要不满足上述条件即可,函数想过滤”O:4“,我们只要稍微修改一下改成”O:+4“就行。首先将字符串"fl4g.php"序列化,可以直接手写,也可以用php脚本来执行。
2024-01-23 21:01:18
1509
1
原创 攻防世界miss_01详解
下载好附件,打开发现压缩包里面的两个文件打开都需要密码,这里就不禁想到了伪加密,将压缩包扔进010editor中分析(也可以用kali的binwalk命令进行分离,这里我用的是010editor)Rabbit解密 https://www.woodmanzhang.com/webkit/rabbitencrypt/index.html。(这里需要下载zip模板,如果没有下载的可以在模板-模板储存库里面添加所需要的库,这里用到的是zip)回到前面的Rabbit密文,希尔解密得到的就是Rabbit的密钥。
2024-01-08 20:21:40
2058
4
原创 uploads-labs Pass 4 htaccess--超文本入口
进入题目环境,可以看到本题限制了很多种文件的上传格式,于是,这里要用到htaccess超文本入口来达到目的。
2023-11-24 16:48:09
122
1
原创 uploads-labs Pass2 MIME验证
进入题目环境,可以看到本题限制了很多种文件的上传格式,于是,这里要用到htaccess超文本入口来达到目的。
2023-11-24 16:07:31
158
1
原创 uploads-labs Pass1 JS前端绕过
于是查看题目的提示,显示的是前端绕过,于是添加一个插件,开开就可实现前端的绕过。第一反应是直接修改文件后缀名,修改后可以上传,用蚁剑连接,显示返回数据为空。点开题目环境,选择一个muma的php文件上传,观察情况。再次上传,点击图像,复制链接,用蚁剑连接。
2023-11-24 16:05:53
91
1
原创 easyphp攻防世界详细题解
这array_search()在查找元素的时候是进行弱类型比较,而在PHP里字符串==0是成立的,即“DGGJ"==0是成立的,因此,要保证在c["n"]中有0,即可绕过array_search的判断。如果没有找到,则输出"no..."并终止执行。这是上述if条件的else部分,如果上述所有的条件检查都没有通过,那么会执行这里的代码,输出"no hack"并终止执行。这行代码的作用是在"n"键的数组中搜索"DGGJ"这个值,并返回其索引位置。的检查没有通过,那么会执行这里的代码,输出"no"并终止执行。
2023-10-29 17:43:14
510
1
原创 攻防世界file_include题解
php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。这样做的好处就是如果不进行编码,文件包含后就不会有输出结果,而是当做php文件执行了,而通过编码后则可以读取文件源码。它指定了你要筛选过滤的数据流。简单通俗的说,这是一个中间件,在读入或写入数据的时候对数据进行处理后输出的一个过程。
2023-10-20 19:01:46
388
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人