aaaaa

品格先行,知识为用

算法大挑战

算法大挑战

一、前言(1/4) 学习一下算法知识,感觉对以后都会有好处。目前定的任务是每周能做4道算法题,每次前言的位置都会打出(1/4)这样的样式,来督促自己学习。算法网站是leetcode,因为有很多人推荐。主要使用的语言是Python3。 二、算法题目 (u1s1,其实这个算法题把我稍微难到了一下) 三、分析 1、我的分析 这个算法因为给了一个实例,给了两个部分目标值(target)和一个数组值。我想的是我可以使用列表记录数组值的位置。以及target-num[i]

  • aaaaa
爬虫初学者的笔记(一)

爬虫初学者的笔记(一)

一、前记 疫情期间就已经想学习爬虫了,主要是考研外加在家躺躺(其实是太懒了)导致爬虫学习一直滞后。本学期我们开设了大数据的课程(终于来了一门良心课程),乘此机会,写一下爬虫的笔记。 二、前期准备 本次的爬虫的语言环境皆来自Python3.7,主要需要的依赖库有:BeautifulSoup,requests,re等(后面再有涉及到的库会再次说明)。操作系统为Win10,编译器是Pycharm专业版(其实是学生邮箱白嫖的) 三、一些爬虫以外的知识 因为爬虫的主要目的是为了能够获取到我们想要的网页信息,而网页主要是由HTML语言+CSS语言构建而成(有时候又会有JavaScript语言,但是不多),有时候我们会利用到这些语言里面的标签。

  • aaaaa
脱不来壳之Frida的使用(附2020年网鼎杯一道reverse题)

脱不来壳之Frida的使用(附2020年网鼎杯一道reverse题)

一、前记 使用Frida完全是因为2020年网鼎杯的时候一些道非常有意思的安卓逆向题(其实就是经过简单加密的题)。但是安装Frida的过程和做题过程我觉得还是应该记录一下。 二、frida 1、简介Frida是一个动态代码插桩框架,这里的介绍主要以应用在Android平台应用程序上。动态二进制插桩(DBI)是将外部代码注入到现有的正在运行的二进制文件中,从而让它执行额外的操作操作。DBI可以: ①访问进程内存 ②在应用程序运行时覆盖函数 ③从导入的类调用函数 ④在堆上查找对象实例并使用 ⑥Hook、跟踪和拦截函数等 2,安装过程Ⅰ、实验环境 Windows 10 python 3.7.3

  • aaaaa
tshark的作用和使用方式(附带例题)

tshark的作用和使用方式(附带例题)

一、前记 最近发现wireshark里面的tshark在提取数据方面比wireshark本身要好用很多。于是想着记录一下tshark的使用方法以及使用过程 二、tshark的使用方法其实在tshark -h命令下可以完整的看到tshark的整个用处。 TShark (Wireshark) 3.2.2 (v3.2.2-0-ga3efece3d640) Dump and analyze network traffic. See https://www.wireshark.org for more information. Usage: tshark

  • aaaaa
流量分析之冰蝎流量分析

流量分析之冰蝎流量分析

一、冰蝎介绍部分 “冰蝎”是一款动态二进制加密webshell客户端。简单的来说是菜刀,蚁剑的进化版。主要的文献在GitHub,先知社区,还有其他的地方。(主要参考链接:https://github.com/rebeyond/Behinder) 冰蝎加密的地方主要是在:$post=openssl_decrypt($post, "AES128", $key);非常典型的一个加密格式。 冰蝎过waf的过程如下: 1.首次链接一句话服务端的时候,客户端向服务器发起一个GET请求,服务器端随机生成一个128位的密钥,把密钥回显给客户端,同时把密钥写进服务器的session里面

  • aaaaa
CTF之机器学习

CTF之机器学习

一、前记 最近开始回归ctf了,想看看有关机器学习类的ctf译文。虽然现目前接触的比较少。但是越往后面肯定越是一个趋势。趁着现在总结一下。 二、大胆预测 机器学习在ctf中的考点应该会是建模模型进行预测,或者是生成线性函数进行预测。考点的形式应该不会太花,主要就是数据预测。(目前遇到的就是这样,往后遇到新的会及时更新) 三、储备知识 在我之前的博客有介绍一些基本知识(参考《 numpy和pandas的基本概念这一文》),重复的不再多说。今天补充的知识是使用numpy进行拟合曲线。 numpy在数据运算和数据处理方面独树一帜,这次介绍的是numpy里面的polyfit()函数和poly1d()函数。利用这两个函数我们就能将一些点拟合成一条曲线。 1、polyfit() polyfit(

  • aaaaa
机器学习之sklearn

机器学习之sklearn

一,前记铺垫了很久的基础知识终于到sklearn了。sklearn是Python里面利用机器学习的一个模块。 二,通用学习模型 在sklearn里面用很多机器学习的传统模型,像KNN,SVM模型。但是所谓的通用学习模型,就是大部分模型都能套用这一个模板对机器学习进行学习。 通用学习的模板步骤: 第一步:首先导入几个我们所需要的库 #encoding:utf-8 from numpy import * from sklearn import * from sklearn.model_selection import * from sklearn.linear_model

  • aaaaa
如何使用社区版XRAY和AWVS进行联动

如何使用社区版XRAY和AWVS进行联动

一、前记 今天使用了一下社区版的XRAY(听说是个非常厉害的工具),感觉非常不错看文档里面有与AWVS联动这一项。于是想着记录一下联动过程。 二、过程 首先打开AWVS:一般是在3443端口(我就是在这里忘了怎么打开的)。 1、创建一个新的扫描目标:http://testphp.vulnweb.com/(awvs的漏洞网站) 创建一个扫描目标2、添加代理服务器 3、选择一个模式 到这里awvs的设置就结束了 --------------------------------------分割线------------------------------------------- 1、在XRAY里面首先我们要先监听端口 .\xray.exe webscan --listen

  • aaaaa
怎样才能在心力交瘁的情况下将Machine Learning神器——TensorFlow安装成功

怎样才能在心力交瘁的情况下将Machine Learning神器——TensorFlow安装成功

一、前记 这两天开始写项目了,但是暑假写的那些东西都已经忘的差不多了。现在想要花个3天的时间将这些内容回顾一下,趁着没事情可以将TensorFlow换成GPU版本的(原来我是CPU版本的,但是运算速度奇慢。有关于ML的东西还是使用GPU计算会更快更好),于是趁着最近有时间将我的CPU版本换成GPU版本的,现在记录一下避(lie)坑(kai)过程。 二、前期 1、环境 在这里我使用了Anaconda虚拟环境下的Python3.7.6,显卡是NVIDIA 1050 2、大概流程 安装Anaconda 检查自己电脑的GPU是否支持CUDA 升级自己显卡的驱动程序 安装正确版本的CUDA

  • aaaaa
动态链接、GOT、PLT

动态链接、GOT、PLT

一,前记 还是很有意思的的一个方向(要是我在学操作系统的时候能在学习这个就好了,会帮我更加理解操作系统这一门课)。今天要记录的是在学习PWN道路上第一个遇到的比较难的一个知识点。 二,什么是动态链接,GOT,PLT1,动态链接有关于链接,实际上就是一个校准函数是否需要带上所有的函数。因为在系统里面会给你提供函数。因此我们将自带ELF文件的文件称为动态链接,而将使用系统的,不使用自带的ELF文件函数初始化静态链接。 2,PLT延迟链接表PLT(过程链接表)重复链接表是Linux ELF文件里面用来重传绑定的表,函数第一次被调用的时候才进行绑定,但是在里面必须有一条调用xxx的语句,xxx在ELF文件里面相当于一个占位符,当ELF文件运行起来之后,会真正的函数地址代替掉xxx。 3,GOT相对位移表GOT(插入位移表)上的位移量表,

  • aaaaa
MISC题目里面的游戏总结

MISC题目里面的游戏总结

一、前记杂项中的游戏题目在这两年可以算得上是一个热点,出题类型多种多样,可以糅合很多的知识(像密码知识,或者是其他的逻辑知识),因此在做完BUU里面的“新春红包题二”之后,我决定来总结一下游戏类出题。 二、游戏文件的几种形式以及解题方法1、swf文件形式swf是一种动画设计软件Flash的专用格式,里面包含丰富的视频、声音和动画,也允许用户之间相互交互(这才是游戏题目重要的一点),对于这一种游戏题目没有过多的方法,只有通过自己的视频播放器可以一帧一帧的播放出来,在这里推荐使用PotPlayer播放器 例题:XCTF 4th-SCTF-2018  肥仔快乐题将文件放入Potplayer播放器里面,将帧数调整到57,就可以显现出来一个动画,里面的NPC对话要注意 将里面的内容进行base64解密就完事 当然也有正儿八经的做法,那就是启用swf的反编译器--JPEXS

  • aaaaa
base大家族的全面认识

base大家族的全面认识

一、前记这次总结base大家族是为了以后做题方便(外加其实真的不太懂原理,就想着总结一下) 二、base大家族有哪些base16 base32 base64 base58 base62 base85 base91 base92 base家族详解(里面所有的例子都会使用成flag)1、base16base16(2的4次方)是将ASCII字符集中可打印字符:0-9和字母A-F对应的二进制字节数据进行编码。 过程如下: 2、base32base32(2的5次方)是将ASCII字符集中可打印字符:2-7和大写字母A-Z对应的二进制字节数据进行编码。二进制长度必须要是40的倍数, 过程如下所示: 3、base64base64(

  • aaaaa
命令执行(因为和代码执行没什么差别,所以在一起总结了)

命令执行(因为和代码执行没什么差别,所以在一起总结了)

一、前记学习到这个知识点的时候在上实训课,忙里偷闲的写了这篇文章(实训实在是无力吐槽)。其实这个命令执行的突破以前学过,但是没有系统的总结过,这次就想着总结一下 二,什么是命令执行造成的突破命令执行分辨率概念:当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的系统,exec,shell_exec等,当用户可以控制命令执行函数中一般使用ls,cat,whoami来进行命令执行的代码。 三,从代码分析是如何造成任意命令执行突破的主要是由代码里面的部分重置函数没有被过滤,给了重置函数的可趁之机,例如: 现在我的PHP代码里面是如下的代码: <?php $arg =$_GET['cmd']; if ($arg)

  • aaaaa
有关于docker下载镜像时出现的timeout

有关于docker下载镜像时出现的timeout

一、前记 论如何解决玄学事件(唉~)。今天碰到了docker镜像下载出现timeout的现象(nmd前两天还是好好的啊)。无奈只有去Google,搜索了好久,甚至还发现了自己没有的docker配置(又Σ(っ °Д °;)っ又慌) 二、问题的样子(害,自己的找不到了网上找一个) 三、解决方法Ubuntu: sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json

  • aaaaa
Python的序列化和反序列化

Python的序列化和反序列化

一、前记 在学习利用ciscn2019华北赛区web2学习jwt的时候,碰到了python的反序列化的问题。就对python的反序列化问题进行了学习。 二、什么是序列化和反序列化、 序列化指的是类对象向字节流转化从而进行存储和传输的一个过程,目的是为了保存、传递和恢复对象的方便性 序列化结果: 反序列化指的是将字节刘转化成原始的对象的一个过程 反序列化结果: 三、序列化过程详解 序列化过程分为三个部分,第一步:从对象里面提取出所有的属性,并将属性转换成名值对;第二步:写入对象的类名;第三步:写入名值对。 (图片的例子主要是想说明类名,对象,变量的概念,并非是序列化的例子)四、反序列化过程详解 反序列化过程分为4个步骤:

  • aaaaa
Jwt的全面认识

Jwt的全面认识

一、前言 jwt编码的题已经是第二次碰见了,在12月份的比赛里面忘了个干净,心想着总结一下。 二、什么是jwt以及他的作用是什么 根据官网的定义,JSON Web Token(以下简称 JWT)是一套开放的标准(RFC 7519),它定义了一套简洁(compact)且 URL 安全(URL-safe)的方案,以安全地在客户端和服务器之间传输 JSON 格式的信息。 jwt的作用是:在网络通信双方之间传递,是一套简洁的URL安全方案。 它的特点比较多:

  • aaaaa
XSS学习之Store(二)

XSS学习之Store(二)

一、前记 在上一篇文章里面我详细的描述了一下存储型XSS的概念以及在简单过滤条件下的运用,今天这篇文章就对存储型XSS进行更深一步学习。 二、对有过滤机制和保护机制的绕过方法 在这里我们先看看对XSS有哪些有效的防护机制(举例使用的是2019年CISCN 华东北赛区的web2) 1、CSP策略 内容安全策略(CSP)是一种web应用技术用于帮助缓解大部分类型的内容注入攻击,包括XSS攻击和数据注入等,这些攻击可实现数据窃取、网站破坏和作为恶意软件分发版本等行为。该策略可让网站管理员指定客户端允许加载的各类可信任资源。 当代网站太容易收到XSS的攻击,CSP就是一个统一有效的防止网站收到XSS攻击的防御方法。CSP是一种白名单策略,当有从非白名单允许的JS脚本出现在页面中,浏览器会阻止脚本的执行。 例如:我在发表文章那一栏写入了<script>alert("aaaaa"

  • aaaaa
XSS学习之Store(一)

XSS学习之Store(一)

一、前记在这篇文章之间,我们已经回顾了一下三种XSS的基本概念(在XSS学习笔记(1))中。现在想记录一下XSS Store,因为它的危害较为广泛,且比较容易中招。 二、存储型XSS是如何对我们产生危害的?1.      在留言版插入含有恶意代码的HTML或者JavaScript代码。 2.      留言板的内容会被储存到网站数据库里面。 3.      另一个用户也访问了该网站的留言板的内容,黑客的留言板内容被当作脚本被执行。 以上的步骤逐渐对实际善良的用户来讲是一种无辜的躺枪。 三、存储型XSS的特点1.      持续时间长:只要一直存在于网站的数据库里面,他的那一串代码都会一直产生影响。 2.      受害人群广泛:因为不针对任意的某一个群体,受害者只要登陆这个网站加载出这个留言板内容就会出现加载脚本的情况。 3.      受害程度不一:

  • aaaaa
XSS学习笔记(一)

XSS学习笔记(一)

一,定义一般是由于在网页开发的时候会有一些扩展,恶意用户可以根据突破将自己的代码注入到网页里面,使用户在打开网页的时候也会执行恶意代码 二,恶意代码的语言类型JavaScript,HTML等用户端语言 三,xss的三种基本类型 1,基于DOM的XSS(基于WebDOM结构的攻击)(文档对象模型,DOM) 什么是DOM?:它可以重新建立网页页面和脚本或程序语言连接起来。 DOM Base XSS图鉴 通过本身的对象模型,JavaScript可以有足够的能力创建HTML JavaScript能够改变页面中的所有HTML元素 JavaScript能够更改页面中的所有HTML属性 JavaScript能够更改页面中的所有CSS样式 JavaScript能够对页面中的所有事件做出反应 在DOM中查找HTML元素的最简单的方法,是通过使用元素的id。 受害对象:用户 攻击手段:

  • aaaaa
在搭建PWN环境时遇到的问题以及解决方案

在搭建PWN环境时遇到的问题以及解决方案

一、前记 最近在搭建PWN的相关环境的时候遇到了一些问题(其实是第二次遇到了,这次想着能有blog能把这个事情给记录一下,在这里还要特别感谢giantbranch师傅一直耐心的指导) 二、遇到的问题和解决方案 1、问题一:catflag的问题 一开始的时候使用脚本去cat flag总是不对(参照攻防世界里里面的cgfsb),因为在pwn环境里面cat flag的情况有很多种,可能作者没有考虑到这一种,于是屁颠屁颠的跑去问giantbranch师傅(过程忽略.......)。解决方案是:在刚开始搭建环境的时候,将initialize.py里面的flag.txt换成flag 不仅限于这两个flag.txt变成这两个才对,但是不仅限于这两个 2、问题二:会出现“

  • aaaaa
有关SWPUCTF的一小部分总结

有关SWPUCTF的一小部分总结

2019.12.7参加了一次西南石油大学的CTF,部分题还是可以,考到了一些平时没有注意到的地方,这次想着将他们总结一下。 1、敲击码敲击码和棋盘密码长的很像,都是通过前面的指示去找后面相对应的字母。不一样的地方在于敲击码是把C/K放在了一起。 2、跳舞的小人这个确实长见识了,听说是出现在《福尔摩斯探案集》里面在的,具体的不难,根据密码译文就可以破译。(但是一定要注意,拿着旗子的小人代表的是英文单词里面的最后一个字母)

  • aaaaa
曼彻斯特与差分曼彻斯特的编码与解密

曼彻斯特与差分曼彻斯特的编码与解密

一、前记曼彻斯特编码算是一个比较冷门的考点,在暑假的时候就想总结来着,但苦于一直没有时间,就慢慢淡忘了,这次参加NEST比赛又出现了(还以为是base64转图片),唤醒了记忆,于是想着能总结一下这种编码。 二、曼彻斯特编码作用:曼彻斯特编码可以作为时钟信号,也可以作为数据信号。 特点:从高到低跳变表示"1",从低到高跳变表示"0"。 也就是说:01=>0,10=>1 三、差分曼彻斯特编码作用:仅提供时钟定时 特点:和上一信号末尾相比,

  • aaaaa
一道简单的REVERSE——lucky number(NEST)

一道简单的REVERSE——lucky number(NEST)

昨天做了一道REVERSE,觉得比较适合逆向入门和编程入门,现在来记录一下 首先将exe放到IDA下面进行分析,放到IDA里面进行分析,进行反编译,如下图: 这是加密的主要部分,但是加密出来的结果我们要去未反编译过后的部分去找,如下图: 加密结果为:H5wg_2g_MCif_T1ou_v7v7v 我们进行加密结果通过加密部分进行倒推,得到原本的内容 解密部分如下: 得到结果,放到exe文件里面去,得到结果。

  • aaaaa