攻防世界PWN高手进阶区

dice_game

溢出+随机数

攻防世界PWN新手练习区题目

get_shell

直接nc连接cat flag即可:

1
cyberpeace{d1070f116850587b8304cd1aa55565e6}

Pwnable.kr_Part_1_15/21

Pwnable.kr-BlackJack-逻辑漏洞

游戏代码在这里:https://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html

查看代码发现代码量很多,以为很复杂,但静下心看一下发现其实很简单,大部分代码用来实现游戏逻辑,获取flag的条件是成为百万富翁,就是使自己的余额大于一百万,游戏规则介绍中也说了,不要试着真去赌,因为每一把都是随机的,很可能一夜回到解放前,因此要寻找题目中的漏洞,按照经验,这种题出现漏洞可能是整数溢出或者是数据校验不严格,然后我发现题目中对用户输入赌注的地方缺乏负数校验:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int betting() //Asks user amount to bet
{
printf("\n\nEnter Bet: $");
scanf("%d", &bet);

if (bet > cash) //If player tries to bet more money than player has
{
printf("\nYou cannot bet more money than you have.");
printf("\nEnter Bet: ");
scanf("%d", &bet);
return bet;
}
else return bet;
} // End Function

2019全国大学生信息安全竞赛初赛PWN-Reverse-WriteUp

Reverse

0x01 easyGo

二进制安全之格式化字符串漏洞

相信每位程序员都写过如下代码:

1
2
3
4
5
6
#include<stdio.h>
int main()
{
printf("Hello world!");
return 0;
}

是的,这应该是每个程序员写的第一个程序,其中printf(),也是一个在C语言中的较为脆弱的函数,我们今天就来探讨一下格式化字符串漏洞。有一点要说的是由于现在的很多编译器都变得更加智能且更加注重安全性,格式化字符串等容易出现问题的函数都会由编译器自动为其添加相应的check函数从而保证函数的安全性,因此格式化字符串漏洞是由很小的可能性会出现在真实的生产环境中的,可能出现这个漏洞最多的情形就是大大小小形式各异的CTF赛题中了,但是由于此漏洞历史悠久并且较为有趣,如果产生此漏洞的话危害也不小,还是有必要学习一下的。

IDA Pro远程调试

有的时候感觉gdb的命令行界面在显示一些数据时比较繁琐,因此试了一下IDA远程调试,感觉数据的查看会方便很多,可能还是我太菜了,之后成大佬了再只用gdb吧。

其实IDA也有Linux版的,在我之前装kali双系统的时候用过,体验尚可,但是运行过程中常常有一些奇怪的报错,函数名称的识别也不够准确,因此在这里记录一下再WIN下使用IDA pro调试Linux程序的过程。

0x00 寻找安装路径

先找到物理机上IDA的安装位置,找到如下文件夹

二进制安全之NX绕过方法--ROP

在之前的缓冲区溢出的实验中,溢出到栈中的shellcode可以直接被系统执行,给系统安全带来了极大的风险,因此NX技术应运而生,该技术是一种在CPU上实现的安全技术,将数据和命令进行了区分,被标记为数据的内存页没有执行权限,因此即使将恶意shellcode写入到执行流程中也会因缺少执行权限而利用失败,在一定程度上提高了系统的安全性,但是所有安全都是绝对的,一种名为ROP(Return-Oriented Programming)的技术就能绕过这项安全措施,ROP的核心思想是利用retjmpcall等指令(主要是ret)来连接代码的上下文从而改变程序执行流程的一项技术,由于ret指令的功能是将当前的栈顶数据弹出到EIP中并跳转执行,我们可以在栈中精心构造一些以ret结尾的特殊指令(gadget)使系统跳转到我们在栈中放置的指令的位置,进而执行这些指令,达到攻击的效果。

Shellcode的编写和利用

在渗透测试和漏洞利用中,Shellcode是一个十分重要的部分,在二进制的安全研究中,Shellcode也充当着十分重要的角色,本文会记录我学习Shellcode的编写和利用原理。

在程序中嵌入Shellcode并执行

首先拿一道十分简单的PWN题来演示程序是如何执行Shellcode

文件下载

首先,这是一个32位的程序,我把它放到了32位的kali虚拟机中

PwnTools使用方法学习

pwntools是一个CTF框架和漏洞利用开发库。它以Python编写,专为快速原型设计和开发而设计,旨在使漏洞利用编写尽可能简单。

在CTF比赛中或者一些漏洞的利用过程中,使用pwntools这个优秀而便捷的库可以使原本复杂的脚本变得简单易读,本文会记录我个人在使用PwnTools过程中的一些技巧,长期更新

2018护网杯PWN题解

这次的护网杯大佬云集,可能很多企业是冲着工业互联网这个招牌去的但是初赛却是学生们玩的比较多的传统CTF。。

gettingStart

题目下载地址

第一道PWN题还是很简单的,写到脸上的溢出,先看一下文件信息

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×