余光中写给未来关于疫情写给孩子的信信 在哪本书里可以找到

线程老哥执行memcpy越界访问溢出堆棧里的一众对象难逃噩运。

“去吧为了首领的伟大理想出发”

我是一段二进制代码shellcode,0xCC大人精心创造了我一同诞生的还有一个HTML表单文件尛P,我就栖身在小P的身上随着一个POST请求,我们朝着目标奔去

很快我们就抵达目的地,这是一个Linux帝国无数的数据包在这里来来往往。

“嘘先别说话,马上要经过防火墙藏好了,可别被发现了”小P一把捂住了我的嘴。

说完我们就来到了防火墙面前当差的守卫查看叻我们的源IP和端口,又看了目的IP和目的端口接着瞟了一眼负载数据,当他望向我这边时我紧张的大气都不敢出一声,把头深深的埋着

守卫凶神恶煞的问到:“你是去80端口的?这里面装的是什么

“回大人的话,这里面是个HTML表单这单业务比较急,还望大爷行个方便”小P一边说一边悄悄给守卫的衣袖里塞了一些银两。

“走吧放行!”,总算等来了守卫的这句话

通过了安检,我俩被安排到了一个隊列等待一会儿,一个自称是Apache公司的线程大哥把我们取走了

线程大哥把我俩放到了一片陌生的区域。

“你等我一下我去打听下情况”,小P叮嘱完我后和隔壁一个对象聊了起来。

“我打听清楚了这里是进程的堆区,你可还记得主人交代的任务吗”,小P问我

“当嘫记得,我是shellcode我要获得执行机会,潜伏起来和主人取得联系,等待下一步指示”

“嗯很好,一会我会找机会让你获得执行机会先等等”

“你要怎么办到啊?”我有点好奇。

“你看到那个线程的栈没”,小P一边说一边给我指

顺着小P指的方向望去,我看到了他口Φ所说的栈线程大哥正在旁边忙碌,一会push一会儿pop。

“我看到了你猜你是想用栈溢出攻击覆盖返回地址,劫持指令寄存器让我获得執行机会吧?”我转头看着小P。

“小子知道的不少嘛!不过你只回答对了一半,咱这次没法覆盖返回地址来获得执行机会”

小P又指向叻线程栈“你看,返回地址前面有个8字节数字那个叫Stack Cannary,是Linux帝国抵御栈溢出攻击的手段”

“不就是8个字节的数字有什么可怕的?”峩不屑一顾。


“可不要小瞧了它当栈溢出数据被修改后,函数return时在从栈中取出返回地址之前会检查它有没有被修改,一旦被发现修改過进程就会终止,咱们的计划不就泡汤了吗

“这程序员还挺聪明的嘛!居然还做了检查”

“这可不是程序员做的,这是GCC编译器干的只要编译的时候添加了-fstack-protector标记就会自动添加,对原来的程序代码是透明的”

听着小P的话我陷入了沉思。

“如此一来那岂不是不能使用棧溢出了?

“也不尽然直接覆盖返回地址是基本不太可能了,过不了函数返回时的检查但可以在它做检查之前就动手,抢先一步劫歭执行流程就没有机会做检查了。”说完小P朝我眨了眨眼睛。

还有这种操作我还是第一次听说,“不覆盖返回地址怎么能劫持到执荇流程呢你打算怎么做?

“嘘!线程大哥来了!

我一下趴着不敢动弹余光中瞥见线程大哥取出了隔壁对象的前面8个字节后就离开叻。

“好险差点被发现,你呀说话别那么大声,计划败露那就全完了知道吗!”,小P把我训了一顿

“好啦,我知道了我刚才问伱的问题你还没回答我呢”,这一次我压低了音量

“你猜刚刚线程大哥过来读取的是什么?”小P神秘地说

“不是取的隔壁对象的内容嗎?你也看到了啊还问我”

“这我当然知道我是问你那内容是什么?

“这我怎么知道我又不知道那是个什么对象”

小P用手臂把我的頭挽在胸前,在我耳边轻轻说到:“他读取的应该是对象的虚函数表指针你看线程大哥读完内容后,又去这内容指向的地方了你再看那里有一个表格,表格里每一项都是一个函数的地址”

我按他说的看过去果如他所言,只见线程大哥读取了表格中的一项后转身就去执荇那里的代码了

“你饶了半天,还没告诉我你打算怎么让我获得执行机会呢”我又一次提出了我的疑问。

“你别着急啊这秘诀就在這虚函数表指针上。你再看看线程栈瞧见没有,那里也有一个对象咱只要把它的虚函数表指针覆盖,待会儿线程大哥调用它的方法时来读取的地址,我就安排成你的地址就能让你有机会执行了”

我脑子飞速运转想象了一下这幅画面:

“果然是妙招!不过你怎么知道對象的虚函数表指针在哪里呢?”我向小P提出了疑问。

“虚表指针一般都是在对象的头部也就是最前面8个字节”

小P摇摇头,“那倒也鈈是有些对象所属的类根本没有虚函数,那也就没有虚函数表虚表指针更是无从谈起了。不过这个对象是有的主人在创造我们时已經都提前研究好了。咱们只需静待时机按计划行事即可。

“快醒醒该我们上了”,小P把我叫醒不知过了多少时间, 我竟然睡着了。

呮见线程大哥执行了memcpy把我和小P一起复制到了栈里。

我昏沉的脑袋一下子清醒了过来下意识的看了一下之前那对象,现在他就在我上面鈈远处已经被小P的身体覆盖掉了,再仔细一看这对象的前8个字节指向的函数表就在我的头顶,而表中每一项都指向了我所在的地址0xCC夶人果然安排的天衣无缝。

果不出乎所料按照周密的计划,我终于等来了执行的机会潜伏这么久,总算是可以活动活动了

“你在干嘛?”小P大声喝住了我。

“按照计划我在和0xCC大人联系啊”

“你就这样直接建立网络连接吗?一会儿防火墙就会发现了”小P面色凝重。

我有点不解“那要怎么办?我怎么和大人联系上

“临行前大人叮嘱我了,用DNS请求把数据带出去把数据编码后作为请求的域名,汾多片发出去”

按照小P的策略我把通信内容先进行了一次加密,然后再使用base64编码后拆成了三段,准备用三个DNS请求给发出去

“等一下,你不能使用0xCC大人的IP作为目的IP地址会被防火墙发现的,就使用这里默认的DNS服务器地址就好了”小P又一次喝止了我。

“使用这里默认的DNS垺务器地址那大人怎么能收到消息呢?”我有点纳闷。

“放心路由器那里已经安排好了!

未完待续·······

“咦,DNS数据包发送夨败了!

“应该是没有权限快翻一下大人给你准备的Linux提权指南”

欲知后事如何,请关注后续精彩......

原创不容易快转发分享给更多人看啊






增值电信业务经营许可证 粤B2-


荔枝微信客服:关注公众号“荔枝APP服务”直接输入您的问题(工作时间:09:00~12:00、14:00~23:00)

荔枝全国公开举报电话:8 举报邮箱:

广州荔支网络技术有限公司 ? All Rights Reserved. 本平台为信息网络存储空间网络服务平台

我要回帖

更多关于 关于疫情写给孩子的信 的文章

 

随机推荐