自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hldfight

编程心得

  • 博客(63)
  • 资源 (3)
  • 收藏
  • 关注

原创 威胁建模之发现识别威胁

我们在实施威胁建模时,为了提升效率,维护一个威胁清单是很有必要的,该威胁清单需要分为两大部分:第一大部分是基线部分,即多数应用都通用的部分;第二大部分则是不同的业务场景特有的部分。我们在遇到新的业务场景时,需要使用STRIDE方法,来发现识别威胁,然后再将这些威胁补充到威胁清单。经过不断完善,将会得到一个较完整的威胁建模参考资料。然后我们可以将该威胁清单制作成Microsoft Threat Modeling Tool工具的模版,来提升我们威胁建模的实施效率。

2023-07-21 21:54:09 1100

原创 威胁建模之绘制数据流图

1、什么是威胁建模:以结构化的方式思考、记录并讨论系统存在的安全威胁,并针对这些威胁制定相应的消减措施。2、为什么要威胁建模:(1)在设计阶段开展威胁建模,一方面可以更全面的发现系统存在的威胁,根据发现的威胁提出相应的安全需求,来最大限度保证系统的安全;另一方面也可以降低安全设计缺陷导致的修复成本。(2)通过威胁建模生成的记录文档,为后期开展的代码审计、渗透测试等安全活动提供支持,可极大提升漏洞挖掘的效率。

2023-06-28 15:06:33 2455

原创 静态程序分析学习心得 tai-e

这个作业几乎占用了我这两个月所有的周末,以及五一假期,不过功夫不负有心人,最终还是通关了。终究是有收获的,对静态程序分析的原理有了更深入的了解,总之继续加油吧,网安的路上,需要学习的还有很多!

2023-05-19 14:22:44 2065 4

原创 log4j官方漏洞修复史(更新至2.17.1/CVE-2021-44832)

0x00 前言自从log4j2.14.1版本爆出漏洞后,官方截止目前为止,共发布了3个稳定版本,分别是15.0、16.0、17.0。本篇文章就分析一下每个版本都做了哪些事情,以此来评估每个版本升级的必要性。0x01 2.15.0版本1.1 修复方案此版本是为了修复最初的 CVE-2021-44228漏洞,它的修复方式总结如下:1、默认禁用msg lookup功能2、在org.apache.logging.log4j.core.net.JndiManager#lookup方法中限制了ldap服务

2021-12-23 14:35:26 14525 1

原创 ThinkPHP的SQL注入问题

ThinkPHP常见SQL注入问题0x00 前言0x01 where()方法 + exp表达式1.1 漏洞代码1.2 漏洞利用1.3 漏洞原理1.4 漏洞修复0x02 数据查询方法参数可控导致可拼接操作符2.1 漏洞代码2.2 漏洞利用2.3 漏洞原理2.4 漏洞修复0x03 where()方法 + bind表达式 + save()方法3.1 漏洞代码3.2 漏洞利用3.3 漏洞原理3.4 漏洞修复0x04 order()方法4.1 漏洞代码4.2 漏洞利用4.3 漏洞原理4.4 漏洞修复0x05 参考文章

2020-11-22 22:07:51 6889 1

原创 Java反射与Golang反射简单对比

0x00 前言前段时间学习了golang的基础语法,发现其反射的概念与Java的差别挺大,做个简单对比,记录一下。为了测试Java反射,创建如下User类:public class User { public String username; private String password; public User() {} public User(String username, String password) { this.username = u

2020-08-15 15:35:41 3025 2

原创 Spring RCE漏洞分析2(CVE-2018-1273)

0x00 前言继续分析Spring的历史漏洞,本篇记录Spring Data Commons的远程代码执行漏洞(CVE-2018-1273)的分析。0x01 环境搭建使用的Spring Data Example Projects提供的示例代码。但该项目中包含有15个子模块,如果将其整体导入IDEA,则需要下载所有模块中的依赖,显然这是没有必要的。通过参考这篇文章,发现只需导入web模块中的...

2020-05-07 00:36:52 2152 1

原创 Spring RCE漏洞分析1(CVE-2018-1270)

0x00 前言趁着五一休息,分析了一下Spring的历史漏洞,这里记录一下对Spring-Messaging远程代码执行漏洞(CVE-2018-1270)的分析。该漏洞涉及到如下概念:1、WebSocket协议,是HTML5提供的一种可在单个TCP连接上进行全双工通讯的协议。即允许服务端主动向客户端推送数据,详情可以参考这里,讲的挺好的。2、SockJS,一个JavaScript库,它在浏览...

2020-05-04 16:44:29 8532

原创 struts2漏洞分析(S2-057为例)

0x00 前言利用空闲时间分析了一下struts2框架的历史高危漏洞,发现除了S2-052(XStream反序列化漏洞)以外,其他漏洞的本质都是由于框架执行了恶意用户传进来的OGNL表达式,从而造成远程代码执行。只不过需要精心构造不同的OGNL代码而已。发生OGNL表达式注入的点也是多种多样,如:请求参数名、请求参数值、content-type请求头、文件上传时的filename值、url地址...

2020-04-15 21:07:04 3044 1

原创 Fastjson历史漏洞分析

0x00 初识Fastjson前段时间分析了一下Fastjson的历史漏洞,在这里做下记录。为了方便切换Fastjson的版本,我用idea新建了一个maven项目,在pom.xml中引入Fastjson:<dependencies> <dependency> <groupId>com.alibaba</gro...

2020-04-07 21:51:15 1848

原创 ysoserial exploit/JRMPListener原理剖析

ysoserial exploit/JRMPListener原理剖析0 前言1 payloads/JRMPClient1.1 Externalizable1.2 生成payload1.3 gadget链分析2 exploit/JRMPListener3 总结0 前言上一篇文章讲了ysoserial exploit/JRMPClient的原理,本篇接着讲一下ysoserial exploit/J...

2020-03-19 23:38:09 2488 1

原创 ysoserial exploit/JRMPClient原理剖析

0 前言ysoserial中的exploit/JRMPClient是作为攻击方的代码,一般会结合payloads/JRMPLIstener使用,攻击流程就是:1、先往存在漏洞的服务器发送payloads/JRMPLIstener,使服务器反序列化该gadget后,会开启一个rmi服务并监听在设置的端口2、然后攻击方在自己的服务器使用exploit/JRMPClient与存在漏洞的服务器...

2020-03-15 20:53:42 3056

原创 通过动态调试了解Java RMI底层通信

0 前言 为了明白ysoserial中提供的exploit中的JRMPClient与JRMPListener攻击原理,于是去动态调试了Java RMI来了解其底层通信原理,在此做个记录:1 RMI服务端首先先调试RMI服务端的代码,如下是我编写的简易RMIServer代码:public class RMIServer { public stati...

2020-03-14 23:07:17 973

原创 java命令执行的三种方式

0 前言本篇文章总结一下java命令执行的三种方式,并且测试了在win环境一次方法调用中可同时执行多个命令的方式。1 java.lang.Runtimepublic class RuntimeTest { public static void test1() throws IOException{ Runtime runtime = Runtime.getR...

2020-03-12 16:21:01 13577

原创 JEP 290之后攻击Java RMI服务

1 RMI基础1.1 概述 远程方法调用是分布式编程中的一个基本思想。实现远程方法调用的技术有很多,例如WebService,两者的区别就是:WebService是独立于编程语言的,它可以跨语言实现项目间的方法调用,而Java RMI是专用于Java环境的。 远程服务器实现具体的Java方法并提供接口,客户端本地仅需根据接口类的定义,提供相应的参数即可调用远...

2020-03-12 12:06:46 1614

原创 Padding Oracle Attack(Java代码实现攻击)

之前看到过一个关于Apache Shiro的一个漏洞,它的Cookie使用AES-128-CBC模式进行加密,导致攻击者可以通过Padding Oracle攻击方式构造序列化数据进行反序列化攻击,这里可以复现该漏洞。但今天的主题不是Apache Shiro,这个以后会讲到。 今天主要讲下Padding Oracle攻击的原理,元旦放假一天,没事干,就自己用Java代码复现了下这...

2020-03-12 11:22:23 1252

原创 第八届蓝桥杯(承压计算)

标题:承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。                             7                             5 8                            7 8 8                           9 2 7 ...

2018-03-01 13:48:09 354

原创 简单线段树(求区间的并集)

        本文讲述简单的线段树,与我上一篇的区间树解决的问题不同,本题是给定一个大的线段(已知起点与终点),然后再给出众多线段(已知起点与终点),求这众多线段映射到那个大线段上的总长度。解决方案是先将该大线段二分,并将二分后的线段作为节点,创建二叉树。例如,大线段为[2, 10), 则可以创建如下二叉树:                                            ...

2018-02-28 19:21:49 1717

原创 区间树(求给定区间是否与已知区间集合相交)

        在x数轴上给出众多线段(已知线段起点与终点),求给定一个线段,并查询该线段与上述众多线段中几条线段相交。创建有序二叉树,节点为众多线段,顺序由线段的起点决定,并且每个节点增加一个域存放该节点的子树中能到达的最右端的值。class RangeTree { private int begin; //起点 private int end; //终点 private int m...

2018-02-28 18:03:49 751

原创 哈夫曼树

      哈夫曼树,经典的一个用例是:在发送一篇文章时,需要将文章的每个字符转存为二进制码,但是为了减少发送的字节数,需要将出现频率高的字符尽量用短的二进制编码表示,为了保证每个字符的二进制码前缀唯一,就可以使用哈弗曼树来构造,代码如下:import java.util.ArrayList;import java.util.Collections;import java.util.Compa...

2018-02-28 17:12:20 190

原创 平衡二叉树(AVL树)

平衡二叉树(AVL树),是一种有序树,因为普通的二叉树如果添加的节点有序,查询效率会与数组无异,而AVL树改变了它的弊端,会实时调整树的高度,使它左右子树的树高之差的绝对值不会大于1。下面给出使用java代码完成的AVL树:import java.util.LinkedList;import java.util.Queue;class AVLTree { private int n; ...

2018-02-28 16:20:39 631

原创 有序二叉树

      本文使用java写的有序二叉树,所谓有序二叉树,就是左子树上的数值小于树根上的值,树根的值小于右子树的值,创建过程很简单,只需要加上一个判断就可以,至于遍历,前序,中序,后序遍历需要使用栈来完成,于是使用递归的方法,层序遍历则需要使用队列,就是先将树根加到队列,然后每次取出队首元素,输出值,并将左右子树加入队列,循环至队列为空为止。下面是主要代码:import java.util.Li...

2018-02-28 16:02:12 4013

原创 初学递归应该看得文章

       记得最开始接触到递归,是在大一学c语言时候接触到的,教材上讲的最简单的递归就是求阶乘,f(n) = n * f(n-1),很简单的一句话,但是当时我还是花了很多时间研究代码的执行过程,懂了以后,碰见后面的汉诺塔则完全崩溃了,代码的执行过程完全理不清,因此,最初看递归代码或者写递归代码,一定是从宏观入手,所以一定要知道宏观的思路:       我是老总,负责创建策略(递归方程),并且使...

2018-02-28 15:39:33 756

原创 java分割字符串

一、用正则表达式分割字符串:1、public String[] split(String regex)字符串对象调用该方法时,使用参数指定的正则表达式regex作为分割标记分解出其中的单词,将单词存放在字符串数组中。例如:对于字符串:s = "1ab c 123 def 45 6";如果分解出全部数字字符组成的单词,必须用非数字字符串作为分割标记,因此使用正则表达式:r

2017-08-15 11:10:34 3395

原创 java的String及StringBuffer的常用方法

一、String类的常用方法1、public int length()计算字符串长度,例如:String s = "我是寒leng的锋";int length = s.length(); //此时length值为92、public boolean equals(String s)比较当前字符串对象的实体是否与参数s指定实体相同。例如:String s1 = new

2017-08-14 22:02:21 575

原创 Java数组的常用方法

java数组排序,二分查找,等等

2017-08-14 18:02:56 760

原创 数据库课设(校友录信息管理系统)

下载课设资源点击打开链接

2017-08-11 15:33:22 3075 7

原创 数据结构课设(散列表的设计与实现)

下载课设资源点击打开链接

2017-08-10 19:08:50 1791

原创 JSP课设(课程设计选题管理系统)

JSP课设,课程设计选题管理系统

2017-08-10 18:54:44 6223 1

原创 Java Web中的MVC

一、Java Web中的MVC1、在Java  Web开发中使用JDBC,应遵循MVC的设计思想,使Web程序拥有一定健壮性、可扩展性。2、MVC(Model-View-Controller)是一种程序设计理念,该理念将软件分为3层结构,分别为模型层、视图层和控制层。1)模型层泛指程序中的业务逻辑,用于处理真正的业务操作;2)视图层指程序与用户相交互的界面,对用户呈现出视图,但不包

2017-08-10 11:20:42 510

原创 JavaScript脚本语言

一、什么是JavaScriptJavaScript是一种基于对象和事件驱动并具有安全性能的解释型脚本语言,在Web应用中得到了广泛应用。他不需要编译,而是直接嵌入在HTTP页面中,把静态页面转变成支持用户交互并相应应用事件的动态页面。在Java Web程序中,经常应用JavaScript进行数据验证、控制浏览器以及生成时钟、日历个时间戳文档等。二、JavaScript主要特点1、解释性

2017-08-09 21:06:20 7805

原创 frameset标签(HTML框架)

一、什么是框架?1、它可以用来向浏览器窗口中加载多个HTML文件;2、每个HTML文件占据一个框架,多个框架同时显示在同一个浏览器窗口中,组成了一个最大的框架,就是一个包含多个HTML文档的HTML文件(称为主文档);3、框架通常的使用方法是在一个框架中放置目录(即可供选择的链接),然后将HTML文件显示在另一框架中。二、标签1、作用:定义主文档中有几个框架并且各个框架是如何排

2017-08-09 16:35:55 1850

原创 form标记

人们在网站登陆信息时,网站要提供给用户用户名文本框与密码文本框,这就是HTML中的表单元素。 表单在此标记内设置,有如下属性:1、action,为处理表单的页面的URL地址;2、method,指定数据传送到服务器的方式,它有两种属性值,分别为get和post。get属性值表示将输入的数据追加到action指定地址的后面,并传送到服务器。属性值为post时,会将输入的数据按照HTTP协议

2017-08-04 19:44:11 2078

原创 table标记

表格标记 标签,表格内容都在其中设置,有如下属性:width长度、height高度、border表格边线的宽度,置为0表示无边框、background设置背景图片、bgcolor设置背景颜色、align表示对齐方式,left为左对齐,right为右对齐,center为居中 标题标记,显示表格标题。  表头标记,有如下属性:align、background、bgcolor、colspan

2017-08-04 18:37:05 1289

原创 简单HTML标记

HTML全称Hypertext Markup Language,译为超文本标记语言。HTML描述超文本中内容的显示方式。使用HTML可以实现在网页中定义一个标题、文本或者表格等。1、标记 它是HTML文件的开头。所有HTML文件都是以标记开头,标记结束。2、标记它是HTML文件的头标记,用于放置HTML文件信息。CSS样式代码可放置在其中。3、标记标题标记,可将网页的标题定

2017-08-04 18:09:09 475

原创 知道SG函数是干什么的

看了几天博弈论,今天突然豁然开朗,充分理解了SG函数,网上有讲得很好的博弈,三种基本博弈在看完后应该会理解,但是对于理解SG函数,这个链接讲的很不错,(http://www.cnitblog.com/weiweibbs/articles/42735.html),看第一遍的时候,没人可以看的很明白,所以一定要自己在纸上根据其定义算出几个数的sg值,例如可选步数集合为{1, 2, 3},算出0

2016-08-07 16:58:26 805

原创 hdu1536 S-Nim (利用sg函数模板打表)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1536利用sg模板可以做出来,代码如下,但很可能超时:#include #include #include #include #include #define H 10001#define K 101using namespace std;int a[K];int sg[H

2016-08-03 16:59:22 705

原创 hdu1848 Fibonacci again and again (博弈论sg函数模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848学完三个基本的博弈论后,只能解决有限的博弈问题,因此我又开始看sg函数,然而看的并不很理解,看了许多博客后,发现sg函数是一个根据可选步数来打一个表,这个表是从1到堆中最大可放的石子的数量n中每个数对应的状态,可以根据这个表中的书来异或求知否为奇异状态,因此暂时可以根据模板来做题,至于

2016-08-03 11:28:40 333

原创 kmp模板

#include #include #include #include using namespace std;void getf(char* P, int* f) { int m = strlen(P); f[0] = 0; f[1] = 0; for(int i = 1; i < m; i++) { int

2016-07-29 16:53:16 288

原创 求两圆环相交部分的面积

Matt is a big fan of logo design. Recently he falls in love with logo made up by rings. The following figures are some famous examples you may know.A ring is a 2-D figure bounded by two circ

2016-07-25 10:36:21 3593

数据结构课设(散列表的设计与实现)

数据结构课设,散列表的设计与实现,包含说明书与源代码

2017-08-10

数据库课设(校友录信息管理系统)

数据库课设,校友录信息管理系统,包含课程设计任务书、说明书和源代码

2017-08-10

JSP课设(课程设计选题管理系统)

JSP课程设计,题目为课程设计选题管理系统,包含源代码,程设任务书,说明书

2017-08-10

空空如也

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

TA关注的人

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