forum: labrepair.altervista.org
user: utente
password: pippone
File(upload.txt) contain Post data:
Code: Select all
-----------------------------%Boundary%
Content-Disposition: form-data; name="icon"
0
-----------------------------%Boundary%
Content-Disposition: form-data; name="subject"
%Soggetto%
-----------------------------%Boundary%
Content-Disposition: form-data; name="addbbcode20"
100
-----------------------------%Boundary%
Content-Disposition: form-data; name="message"
%Messaggio%
-----------------------------%Boundary%
Content-Disposition: form-data; name="lastclick"
%CreationTime%
-----------------------------%Boundary%
Content-Disposition: form-data; name="post"
Invia
-----------------------------%Boundary%
Content-Disposition: form-data; name="attach_sig"
on
-----------------------------%Boundary%
Content-Disposition: form-data; name="creation_time"
%CreationTime%
-----------------------------%Boundary%
Content-Disposition: form-data; name="form_token"
%Token%
-----------------------------%Boundary%
Content-Disposition: form-data; name="fileupload"; filename=""
Content-Type: application/octet-stream
-----------------------------%Boundary%
Content-Disposition: form-data; name="filecomment"
-----------------------------%Boundary%--
Code: Select all
#INTERNET_OPEN_TYPE_DIRECT = 1
#HTTP_ADDREQ_FLAG_ADD = $20000000
#HTTP_ADDREQ_FLAG_REPLACE = $80000000
#INTERNET_FLAG_SECURE = 0
#INTERNET_SERVICE_HTTP = 3
#INTERNET_DEFAULT_HTTP_PORT = 80
#HTTP_QUERY_COOKIE = 44
Global UserName.s,Password.s,SitoBase.s,Token.s,CreationTime.s,Sid.s,Host.s,PostData.s,boundary.s,get_url.s,BaseString.s
UserName="utente"
Password="pippone"
EOL.S=Chr(13)+Chr(10)
ProcedureDLL.s Mio_Between(stringa.s,stringasinistra.s,stringadestra.s); Restituisce la stringa in mezzo alla stringa sinistra e quella destra
pos1=FindString(stringa,stringasinistra,1)+Len(stringasinistra)
pos2=FindString(stringa,stringadestra,pos1)
result$=Mid(stringa,pos1,pos2-pos1)
ProcedureReturn result$
EndProcedure
Procedure.s login()
;username and password hare taken from global variable for now
; Do NOT include http:// or any other protocol indicator here
host.s ="labrepair.altervista.org"
get_url.s = "/ucp.php?mode=login"
datilogin.s="username=utente&password=pippone&login=Login&redirect=.%2Findex.php%3F"
result.s = ""
open_handle = InternetOpen_("User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0",#INTERNET_OPEN_TYPE_DIRECT,"","",0)
connect_handle = InternetConnect_(open_handle,host,#INTERNET_DEFAULT_HTTP_PORT,"","",#INTERNET_SERVICE_HTTP,0,0)
request_handle = HttpOpenRequest_(connect_handle,"POST",get_url,"","",0,#INTERNET_FLAG_SECURE,0)
headers.s = "Content-Type: application/x-www-form-urlencoded" +Chr(13)+Chr(10)
HttpAddRequestHeaders_(request_handle,headers,Len(headers), #HTTP_ADDREQ_FLAG_REPLACE | #HTTP_ADDREQ_FLAG_ADD)
post_data.s = datilogin
post_data_len = Len(post_data)
send_handle = HttpSendRequest_(request_handle,"",0,post_data,post_data_len)
buffer.s = Space(1024)
bytes_read.l
total_read.l
total_read = 0
Repeat
InternetReadFile_(request_handle,@buffer,1024,@bytes_read)
result + Left(buffer,bytes_read)
buffer = Space(1024)
Until bytes_read=0
If FindString(result,"I tuoi messaggi")
Debug "login effettuato"
Sid="&sid="+Mio_Between(result,"sid=",Chr(34))
Else
Debug "login fallito"
EndIf
ProcedureReturn result
EndProcedure
Procedure.s Nuovopost()
host.s ="labrepair.altervista.org"
get_url.s = "/posting.php?mode=post&f=2"+sid
result.s = ""
open_handle = InternetOpen_("User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0",#INTERNET_OPEN_TYPE_DIRECT,"","",0)
connect_handle = InternetConnect_(open_handle,host,#INTERNET_DEFAULT_HTTP_PORT,"","",#INTERNET_SERVICE_HTTP,0,0)
request_handle = HttpOpenRequest_(connect_handle,"POST",get_url,"","",0,#INTERNET_FLAG_SECURE,0)
headers.s = "Content-Type: application/x-www-form-urlencoded" +Chr(13)+Chr(10)
HttpAddRequestHeaders_(request_handle,headers,Len(headers), #HTTP_ADDREQ_FLAG_REPLACE | #HTTP_ADDREQ_FLAG_ADD)
post_data.s =""
post_data_len = Len(post_data)
send_handle = HttpSendRequest_(request_handle,"",0,post_data,post_data_len)
buffer.s = Space(1024)
bytes_read.l
total_read.l
total_read = 0
Repeat
InternetReadFile_(request_handle,@buffer,1024,@bytes_read)
result + Left(buffer,bytes_read)
buffer = Space(1024)
Until bytes_read=0
If FindString(result,"nuovo argomento")
Debug "2 fase effettuata OK"
CreationTime=Mio_Between(result,"creation_time"+Chr(34)+" value="+Chr(34),Chr(34))
Token=Mio_Between(result,"token"+Chr(34)+" value="+Chr(34),Chr(34))
Sid="&sid="+Mio_Between(result,"sid=",Chr(34))
Else
Debug "2 fase fallita Failed"
EndIf
ProcedureReturn result
EndProcedure
Procedure.s Inviapost()
host.s ="labrepair.altervista.org"
get_url.s = "/posting.php?mode=post&f=2"
RandomSeed(Date())
GUID.l = Random(Date())
result.s = ""
ReadFile(0,"Upload.txt")
Repeat
PostData$+ReadString(0,#PB_File_IgnoreEOL)
Until Eof(0)
CloseFile(0)
If ReadFile(0,"upload.txt")
buffersize=Lof(0)
*filebuffer=AllocateMemory(buffersize)
If *filebuffer
If ReadData(0,*filebuffer,buffersize)
EndIf
EndIf
CloseFile(0)
EndIf
Soggetto.s="testthread"+Str(Random(10000))
Messaggio.s="test message"
Boundary.s=Str(GUID)+Str(Random(999999,100000))
PostData$=PeekS(*filebuffer,buffersize)
PostData$=ReplaceString(PostData$,"%Boundary%",Boundary)
PostData$=ReplaceString(PostData$,"%Token%",Token)
PostData$=ReplaceString(PostData$,"%CreationTime%",CreationTime)
PostData$=ReplaceString(PostData$,"%Soggetto%",Soggetto+Str(Random(99999)))
PostData$=ReplaceString(PostData$,"%Messaggio%",Messaggio)
ContentType$="Content-Type: multipart/form-data; boundary=---------------------------"+boundary
open_handle = InternetOpen_("User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0",#INTERNET_OPEN_TYPE_DIRECT,"","",0)
connect_handle = InternetConnect_(open_handle,host,#INTERNET_DEFAULT_HTTP_PORT,"","",#INTERNET_SERVICE_HTTP,0,0)
request_handle = HttpOpenRequest_(connect_handle,"POST",get_url,"","",0,#INTERNET_FLAG_SECURE,0)
headers.s = "Content-Type: multipart/form-data; boundary=---------------------------"+boundary+#CRLF$
; Headers.s+"Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"+Chr(13)+Chr(10)
; Headers.s=headers+"Accept-Language it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"+Chr(13)+Chr(10)
; Headers.s=headers+"Accept-Encoding gzip, deflate"+Chr(13)+Chr(10)
; Headers.s=headers+"Referer http://labrepair.altervista.org/posting.php?mode=post&f=2"+sid+Chr(13)+Chr(10)
; Headers.s=headers+"Connection keep-alive"+Chr(13)+Chr(10)
; headers.s = headers+ContentType$+Chr(13)+Chr(10)
; Headers.s=headers+"Content-Length "+Len(PostData$)+Chr(13)+Chr(10)+#CRLF$
Debug headers.s
Debug PostData$
HttpAddRequestHeaders_(request_handle,headers,Len(headers), #HTTP_ADDREQ_FLAG_REPLACE | #HTTP_ADDREQ_FLAG_ADD)
post_data.s =""
post_data_len = Len(post_data)
send_handle = HttpSendRequest_(request_handle,"",0,post_data,post_data_len)
buffer.s = Space(1024)
bytes_read.l
total_read.l
total_read = 0
Repeat
InternetReadFile_(request_handle,@buffer,1024,@bytes_read)
result + Left(buffer,bytes_read)
buffer = Space(1024)
Until bytes_read=0
If FindString(result,"Rispondi al messaggio")
Debug "3 fase effettuata ok"
Else
Debug "3 fase fallita failed"
EndIf
OpenFile(0,"c:\test.html")
WriteString(0,result)
CloseFile(0)
RunProgram("c:\test.html")
ProcedureReturn result
EndProcedure
login()
Nuovopost()
Inviapost()

