checksec一下IDA打开,如果满足的条件达成,就可以getflag找到栈溢出漏洞,输入可以覆盖到v2将代码11.28125在内存中的十六进制表示出来,浮点数转十六进制代码如下:importstructdeffloat_to_hex(f):returnhex(struct.unpack('
pwn学习(3)BUUCTF-rip(函数知识/缓冲区溢出)
术业有专攻,闻道有先后
#pwnjava开发语言
下载文件,查看文件信息IDA64打开,发现危险函数gets(),可以判断存在栈溢出漏洞接着查看fun()函数,发现是system函数,system是C语言下的一个可以执行shell命令的函数接下来思路就清晰了,需要用gets函数获取一个长字符串覆盖rip来控制程序流到fun()函数函数的局部变量会存放在他的栈中,那么我们在main函数中,双击s变量,查看s分配了多少空间是十五个字节的空间,也就是在
2023年-10月-第1周周报
XiaozaYa
笔记
完成事项这周主要就是在搞异构pwn学习了mips32,arm(32位)基础汇编,然后做了一些栈溢出的题目,对栈溢出的题目基本有了一个大致的了解未完成事项内核条件竞争house系列如何解决未完成事项加快进度下周待做事项aarch64简单学习下,然后主要是把arm的环境配好,做一做堆题内核条件竞争house系列本周学习的知识分享基本没有,这周都是学习的很基础的东西,基本就是网上就可以找到的。值得一提的
【pwn入门】用gdb实现第1个pwn
Jeff_Scott
PWN智能汽车安全pwn网络安全
声明本文是B站你想有多PWN学习的笔记,包含一些视频外的扩展知识。有问题的源码#include#include#includecharsh[]="/bin/sh";intfunc(char*cmd){system(cmd);return0;}intmain(){chara[8]={};charb[8]={};puts("input:");gets(a);//gets函数可以读取超过8个字节的数据,
pwn学习(2)test_your_nc
术业有专攻,闻道有先后
#pwn学习
一.checksec检测文件的保护机制:从上图可以看出这是一个64位程序,开启了NX防护(堆栈不可执行)代码中:·Relro:FullRelro(重定位表只读)RelocationReadOnly,重定位表只读。重定位表即.got和.plt两个表。·Stack:NoCanaryfound(能栈溢出)·NX:NXenable(不可执行内存)Non-ExecutableMemory,不可执行内存。·P
CTF-PWN学习-为缺少指导的同学而生
予我心安A3
CTF学习网络安全CTF比赛CTF-PWN入门PWN
更新公告:2023-7-5晚上21:12已更新,对内容做了些调整。调整如下:添加解题步骤描述添加专业名词描述博主也是个PWN的入门者。PWN的入门不可能是无痛的。能做到的只是减少一点初学者的痛苦。这篇博客会长期维护,也会越来越好。PWN是什么CTF中PWN题型通常会直接给定一个已经编译好的二进制程序,然后参赛选手通过对二进制程序进行逆向分析和调试来找到利用漏洞,并编写利用代码发送playload,
pwn学习笔记之小技巧篇
jessica1123
1.怎么获取environ环境变量地址?关于environ的解释:http://tacxingxing.com/2017/12/16/environ/获取:image.png在peda下面还可以用vmmap来查看内存的情况image.png2.怎么获取libc里的read,write等函数的地址偏移?复制linux下依赖的libc.so.6文件到IDA里面,其中用ldd命令可以查看可执行文件的依赖
简单的PWN学习-ret2shellcode
vlan911
PWN学习
最近笔者开始钻研pwn的一些知识,发现栈溢出真的非常的有意思,于是经过一个多礼拜的学习,终于是把2016年的一道CTF题给看明白了了,首先我们学习一下前置技能0x01shellcode首先简单看一下shellcode是怎么生成的,首先简单看一下shellcode是怎么生成的,使用python3环境生成一个shellcode,如下所示frompwnimport*shellcode=shellcraf
Pwn学习
Red-Leaves
Pwn学习python
1.ret2text首先拖入KaLi中,checksec发现是一个32位elf文件,并且开启了NX,即为Noexecute(栈禁止执行)使用IDAPro打开发现vulnerable和get_shell函数,双击打开存在栈溢出漏洞,并且有直接的shell函数。使用gdb调试,在main函数下断点使用cyclic生成字符串可得知需要输入的数量为16+4(16+32位下的4位地址)POC如下frompw
pwn学习之——初级任意地址写和进阶任意地址写!
小白King
最近看了一道题,write4的,里面有个很好的思路就是任意地址写:一起看看吧:image.png64位的,堆栈不可写保护,栈溢出漏洞,栈大小是:image.png32+8=40(覆盖了ebp的)找找system函数(plt)image.png找找“/bin/sh”,找不到哎:image.png这个不行哎,看来只能我们自己写/bin/sh了,这里介绍一种新技能!就是任意地址写:举个例子:其中r1是要
【pwn学习】buuctf pwn题目(二)
ckj123
下班了继续做level0先checksec一下很简单的道理就是vulner函数里面存在漏洞call到callsystem就好了就覆盖0x80个就好了算了之后这种简单题就直接给payload吧ciscn_2019_n_1这道题看了源码是逆向加pwn逆向完就很简单了就直接ret2libc因为是64所以需要找一下gadget直接贴代码吧#coding=utf8frompwnimport*fromLibc
【pwn学习】buuctf pwn题目(一)
ckj123
test_you_nc进去看main里面就是sh所以nc就好ripchecksec一下发现是64位看一下代码没有任何过滤直接一个rop应该就行了有个fun函数直接就有sh了,就跳过去就好了payloadsystem_addr=0x0401186payload=flat('A'*15,0,system_addr)cn.sendline(payload)cn.interactive()奇怪的是syst
Pwn学习笔记
有头发的琦玉
pwn学习
寄存器EAXEBXECXEDXEDIESIEBP指向系统栈最上面一个栈帧的底部。ESP保存当前Stack的地址汇编指令指令平台作用ucomissx86浮点比较ParagraphTextAndmoreshallcodechar*input=(char*)malloc(sizeof(char)*256);read(0,input,256);((void(*)())(input))();把字符串当函数执
PWN学习总结(不断完善中)(有道云笔记)
tbsqigongzi
pwnCTF学习历程网络安全安全linuxc语言python
学习路线pwn一些概念理解王爽汇编学习笔记DOS-BOX及编译工具–百度网盘提取码:ajbalinux知识学习(CTF主要考察linux环境下的漏洞利用)—菜鸟教程nala包管理命令(个人感觉比apt好用)python知识学习(写exp用)----菜鸟教程gcc编译过程(了解一下)vim用法(好难,正在学)pacvim游戏ctf-wiki-pwn漏洞利用总结图刷题网站BUUCTFBUUCTF—li
[二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇
VxerLee昵称已被使用
[二进制漏洞]PWN学习之格式化字符串漏洞Linux篇格式化输出函数最开始学C语言的小伙伴们,肯定都很熟悉printf("Hello\n"),我们利用printf来输出字符串到控制台,当然我们也可以利用printf来输出整数类型、浮点类型、其他等等类型,这一切都归功于格式化输出函数。prin
【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前
arttnba3
学习札记linux内核操作系统
【学习札记NO.00004】LinuxKernelPwn学习笔记I:一切开始之前[GITHUBBLOGADDR](https://arttnba3.cn/2021/02/21/NOTE-0X02-LINUX-KERNEL-PWN-PART-I/)0x00.LinuxKernelBasicKnowledge一、内核内核架构:微内核&宏内核(单内核)宏内核(MonolithicKernel,又叫单内核
Kernel pwn 基础教程之 ret2usr 与 bypass_smep
合天网安实验室
一、前言在我们的pwn学习过程中,能够很明显的感觉到开发人员们为了阻止某些利用手段而增加的保护机制,往往这些保护机制又会引发出新的bypass技巧,像是我们非常熟悉的Shellcode与NX,NX与ROP。而当我们将视角从用户态放到内核态的时候,便是笔者今天想与大家分享的两个利用手段:ret2usr与bypass_smep。二、ret2usr利用介绍ret2usr的资料在网上其实并不算多,究其原因
pwn学习资源(持续更新...)
ch3ckr
由于某种需要,开始接触二进制,做点笔记,以便查阅。学习思路:学习各种套路写有漏洞的程序->pwnCTF练习网站:http://pwnable.krhttps://pwnable.twhttps://www.jarvisoj.comhttps://github.com/ctfsWargamesROPEmporiumexploit-exercisesgoogle搜索:xxxctf、xxxwriteup
LeetCode[位运算] - #137 Single Number II
Cwind
javaAlgorithmLeetCode题解位运算
原题链接:#137 Single Number II
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一
《JavaScript语言精粹》笔记
aijuans
JavaScript
0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。
1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。
2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是
你应该更新的Java知识之常用程序库
Kai_Ge
java
在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。
Guava
Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。
guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该
HttpClient
120153216
httpclient
/**
* 可以传对象的请求转发,对象已流形式放入HTTP中
*/
public static Object doPost(Map<String,Object> parmMap,String url)
{
Object object = null;
HttpClient hc = new HttpClient();
String fullURL
Django model字段类型清单
2002wmj
django
Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。 Cha
在SQLSERVER中查找消耗CPU最多的SQL
357029540
SQL Server
返回消耗CPU数目最多的10条语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_of
Myeclipse项目无法部署,Undefined exploded archive location
7454103
eclipseMyEclipse
做个备忘!
错误信息为:
Undefined exploded archive location
原因:
在工程转移过程中,导致工程的配置文件出错;
解决方法:
 
GMT时间格式转换
adminjun
GMT时间转换
普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。
1、可以使用
SimpleDateFormat SimpleDateFormat
EEE-三位星期
d-天
MMM-月
yyyy-四位年
Oracle数据库新装连接串问题
aijuans
oracle数据库
割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下:
Fatal NI connect error 12170.
VERSION INFORMATION: TNS for Linux: Version 10.2.0.4.0 - Product
回顾java数组复制
ayaoxinchao
java数组
在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方
java web会话监听并使用spring注入
bewithme
Java Web
在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。
import java.util.ArrayList;
import java.ut
NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)
bijian1013
redis数据库NoSQL
一 .Redis常用命令
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。
a.键值相关命令
b.服务器相关命令
1.键值相关命令
&
java枚举序列化问题
bingyingao
java枚举序列化
对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题:
1.加一个枚举值
新机器代码读分布式缓存中老对象,没有问题,不会抛异常。
老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。
2.删一个枚举值
新机器代码读分布式缓存中老对象,反序列
【Spark七十八】Spark Kyro序列化
bit1129
spark
当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。
Spark
Hybridizing OO and Functional Design
bookjovi
erlanghaskell
推荐博文:
Tell Above, and Ask Below - Hybridizing OO and Functional Design
文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,
Java-Collections Framework学习与总结-HashMap
BrokenDreams
Collections
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。
&nb
读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请
* bylijinnan
*/
abstract class Handler {
/*
Android中启动外部程序
cherishLC
android
1、启动外部程序
引用自:
http://blog.csdn.net/linxcool/article/details/7692374
//方法一
Intent intent=new Intent();
//包名 包名+类名(全路径)
intent.setClassName("com.linxcool", "com.linxcool.PlaneActi
summary_keep_rate
coollyj
SUM
BEGIN
/*DECLARE minDate varchar(20) ;
DECLARE maxDate varchar(20) ;*/
DECLARE stkDate varchar(20) ;
DECLARE done int default -1;
/* 游标中 注册服务器地址 */
DE
hadoop hdfs 添加数据目录出错
daizj
hadoophdfs扩容
由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误:
2014-11-18 08:51:39,128 WARN org.apache.hadoop.h
grep 目录级联查找
dongwei_6688
grep
在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数:
grep -n -r "GET" .
上面的命令将会找出当前目录“.”及当前目录中所有下级目录
yii 修改模块使用的布局文件
dcj3sjt126com
yiilayouts
方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如: 'theme'=>'mythm', 那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件; 如果未配置主题,那么 yii的模块就使用 protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr
设计模式之单例模式
come_for_dream
设计模式单例模式懒汉式饿汉式双重检验锁失败无序写入
今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。
*********************************
8、数组
豆豆咖啡
二维数组数组一维数组
一、概念
数组是同一种类型数据的集合。其实数组就是一个容器。
二、好处
可以自动给数组中的元素从0开始编号,方便操作这些元素
三、格式
//一维数组
1,元素类型[] 变量名 = new 元素类型[元素的个数]
int[] arr =
Decode Ways
hcx2013
decode
A message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26
Given an encoded message containing digits, det
Spring4.1新特性——异步调度和事件机制的异常处理
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
squid3(高命中率)缓存服务器配置
liyonghui160com
系统:centos 5.x
需要的软件:squid-3.0.STABLE25.tar.gz
1.下载squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
tar zxf squid-3.0.STABLE25.tar.gz &&
避免Java应用中NullPointerException的技巧和最佳实践
pda158
java
1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。 总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常
Object unk
如何在Swift语言中创建http请求
shoothao
httpswift
概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。
如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。
在这里,我将作出一些建议来回答上述问题。常见的
Spring事务的传播方式
uule
spring事务
传播方式:
新建事务
required
required_new - 挂起当前
非事务方式运行
supports
&nbs