期末考核复现

一.pwn1

1.checksec

 

2.代码分析

 老朋友了

考核PWN的wp(未完待续)_wbxlzd的博客-优快云博客

不多简述

二.int

1.查壳

 

2.代码分析

先是随机一个数,然后自己再输入一个数。

这两个数相加为零,即执行后门函数。但不能直接输入负数来使它们相加为零,否则直接报错。

3.分析

有canary保护,否决栈溢出。

这行代码表示该函数将字符串 v7 解析为一个整数,并将解析结果存储到变量 v5 中。给我们带来利用的条件,这下v5和v6都是%d,%d的范围为32位。只要我们相加到超过这个范围,进1后,符号位就是1,则为负数。

就是V6这个随机数,转换为二进制后,再转换为补码,让x相加到33位,即成功绕过。

这个x就是v6的补码加1

为什么?

比如我们想要得到10000,已知一个数是1100,那么先假设加上0011,结果为1111,再加上1,即为10000。所以就是需要v6的补码加1。

4.exp.py

因为这题的v6随机

①在python的交互下完成

 ②nc下完成

 三.web 爆破

打开发现有一万个网页,里面随机分布着flag碎片

 

这题就是考爆破的运用

 

先添加要爆破的位置

 开始设置爆破的种类,范围,步长

然后根据反映的长度不同,来依次拼接

四.md5

直接上脚本

import hashlib
import itertools
import string

MW='Python_MD5'
# flag=MD5(MW)
# print(flag)

dict=string.ascii_letters+string.digits
print(dict)

for i in itertools.product(dict,repeat=4):
    str="".join(i)
    md5 = hashlib.md5((MW+str).encode()).hexdigest()
    if "ca5c8967fce365cd2e79ba086d" in md5:
        print(MW+str)
        exit()

运行结果

 Python_MD5ALJX

因为flag=MD5(MW),所以还得去md5加密一下

 flag为CA5C8967FCE365CD2E79BA086D7F808E

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wbxlzd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值