手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表全部文章

SQL查询结果集对注入的影响及利用

现在研究注入性文章的不多了,但还是需要研究,特别是自己在做网站的时候。除了SQL注入,剩下的还有XSS注入等。唉。做个网站都要这么辛苦。。

  对于注入而言,错误提示是极其重要。所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要。本问讨论下关于几类错误和他产生的原理,希望对读者有所帮助。

  错误提示主要有逻辑错误和语法错误以及脚本运行错误三类。

  一:逻辑错误

  简单的例子是1=1 1=2这两个,1=1与1=2页面不同的原理是什么?以$sql = "select * from news where id=$_GET[id]"为例。

  select * from news where id=1 and 1=2产生的结果集为NULL,然后程序取值得时候,就会去出空值,无法显示。当然有的程序发现SQL执行结果集为空,就立即跳转,效果就不显鸟。值得注 意的是,有的如Oracle Postgresql的数据库在结果集为空情况下会再页面上表现字符型null字样,这算是个特点。如果使用or条件,比如

  select * from news where id=1 or 1=1

  和and 1=2得结果正好相反,他的结果集十分庞大。如果SQL语句如此,再加上程序是循环读取结果集(一些编程上的陋习)那么会取出所有结果,结果可能运行很 慢,在数据量巨大的oracle上容易出现。这个例子会出现什么呢,一般程序取出结果集中的第一条结果,那么很可能已经不是id=1的那条新闻了,这就是 由些小菜奇怪有时候or 1=1页面会发生变化的原因。

  归根到底,都是结果集不同造成的,灵活掌握是关键,这并非单纯的经验问题。

  二:语法错误

  语法错误时比较熟悉的,比如对于SQL Server,PgSQL,Sybase的注入错误提示都很重要,因为利用它的特性来获取信息很快速。语法错误造成的结果可能是SQL错误而中断脚本执 行,但是脚本或服务器设置屏蔽错误的情况下,程序得到继续执行,但是结果集不存在,连NULL都算不上,反馈给攻击者的很可能就是结果集为空的情况,其实 这是脚本的处理结果。当然Oracle PgSQL表现null。

  三:运行错误不用说了,典型的就是利用mysql注入benchmark让脚本运行超时得到物理路径,以及利用超时来获得不同的表征进行盲注入。

  四:逻辑错误和语法错误的结合。

  当表征极不明显的时候,利用类似iff这样的函数进行正确与否的区分有时候会成救命稻草。因为语法错误和逻辑错误的表征大多数情况都会有不同。

  iff(1=1,1,'no')这个会产生结果1 注意是数字,而iff(1=2,1,'no')这个会产生'no' 是字符。那么

  id=1 and 1=iff(1=1,1'no')正确是必然成立的,而id=1 and 1=iff(1=2,1,'no')会因为类型不同发生语法错误。不过可惜的是似乎支持iff函数的数据库不多,呵呵。

  现在讲结果集在注入中的利用原理。

  一:从'or''='开始

  这是学习SQL注入的初级课程,登陆漏洞。我简略从SQL结果集上分析。

  $sql = "select top 1 * from admin where username='$username' and password=md5('$password')";

  显而易见,'or''='的加入使SQL语句返回了一条记录,这才使验证通过。

  二:再看现在的验证中的SQL

  $sql = "select top 1 * from admin where username='$username'";

  结果集不为空才根据抽取的记录集中的密码值与用户提交的密码MD5值进行比对来进行验证。这样,你突然发现'or''='的计策失败鸟,但是后 台明明有注入,这就是验证方法造成的。跟进这个验证过程,'or''='的确产生了一个结果集(admin表中的第一行记录)但是遗憾的事,后来的密码比 对没法通过,验证无法成功。

  思路很简单,网上有案例,我重在原理,利用union来产生想要的结果集。比如'and(1=2)union select top 1 username,'123456得md5值',id from admin where username='admin

  这样产生了admin的记录信息,但是记录集中的密码那个位置的值被替换成了123456的md5值,这样,使用admin 123456通过验证并且继承他的权利。

  更有甚者全部用'xxx'的方法来盲狙,这就很“过分”鸟。不过在sql2000 sybase这些严格要求类型匹配的数据库来说,这样不能撼动“管理员登陆”的,因为执行时发生了语法错误,结果集为NULL。另外以前 ewebeditor注入漏洞来上传马也是这个union操作结果集来达到目的的经典案例。

来自于:http://hi.baidu.com/isbx/blog/item/17d629349ecef3325ab5f538.html

Tags: sql注入

php注入下的万能密码

原创作者:Dream an end (S.s.F)

说实话如果一个网站的前台都是注入漏洞,那么凭经验,万能密码进后台的几率基本上是百分之百。

可是有的人说对PHP的站如果是GPC魔术转换开启,就会对特殊符号转义,就彻底杜绝了PHP注入。

其实说这话的人没有好好想过,更没有尝试过用万能密码进PHP的后台。

其实GPC魔术转换是否开启对用万能密码进后台一点影响也没有。

如果你用这样的万能密码'or'='or',当然进不去,理由是GPC开启的时候单引号会被转换。

PHP注入时我常用的万能密码是:'or 1=1/*.

那我们分析一下为什么这可以进后台。

如果sql语句这样写:"SELECT * FROM admin where name='".$_POST['name']."'and password='".$_POST['password']."'",那我们在帐号处输入万能密码'or 1=1/*,密码随便输,sql语句就成了select * from admin where name='’or 1=1/*' and password='任意字符'。

/*为mysql的注释符,这样后面的东西就都被注释掉了,也就是为什么密码随便输的原因。

假设GPC转换没有开启,那么请看:where name='’or 1=1(*/后面的东西被注释掉了),

name='’的逻辑值为假,而后面的1=1逻辑值则为真,对于整体就成了假 or 真,最终的逻辑值还是真,就进后台了。

那么如果GPC转换开启了,就对单引号进行了转换。语句就变成了where name='\’or 1=1,在

看一下和刚才有什么区别,无非是多了个\。name='\'与name=''的逻辑值一样,都为假,那1=1 为真,总的sql语句的逻辑值不还是真吗?那有进不去后台的理由吗?

所以总的来说,php网站的万能密码可以这样写:'or 1=1/*,而GPC转换是否开启对它没有任何影响!

所以请改变你的想法:存在字符型注入的php网站是可以用万能密码'or 1=1/*的

有意思的文章,来自于:http://hi.baidu.com/isbx/blog/item/f83b9e3de2e33f09bba16721.html

推荐一款插件:ScribeFire

这款插件的用途是可以让你快速发表博客。功能还算是挺强大。主要是方便啦

而且,它是firefox的插件,不需要你安装软件,有firefox的地方就能够使用,多方便啊。。。

当然,在使用它为wordpress发表文章的时候,还必须在后台开启XML-RPC应用。否则是不能发表的。

博客系统看来是需要更换了,sablog用了也将近2年了。最痛苦的就是输入的文章突然消失(不小心按了Backspace键,然后回来的时候内容就没有了),出现了好几次这样的事故。。

下载地址为:https://addons.mozilla.org/en-US/firefox/addon/1730

截图:大小: 24.52 K
尺寸: 200 x 119
浏览: 2406 次
点击打开新窗口浏览全图

Tags: 插件, firefox, scribefire, wordpress, blog

[转]身体器官工作表一览,身体是干任何事情的本钱

作为一名IT工作者,身体其实就从来没有注意过,随着年龄的增长,身体会越来越差,真应了那句:年轻时用身体赚钱,年老时用钱养身体。

时刻注意一下,有什么问题及早就医,拖到最后就晚了。正如扁鹊见蔡恒公那样,在皮肤不看,在内腑不看,等到深入骨髓再看已经来不太了。

以下就是摘抄的文章内容:

身体器官工作表一览,睡觉别太晚了 任何试图更改生物钟的行为,都将给身体留下莫名其妙的疾病,20、30年之后再后悔,已经来不及了。
一、晚上9-11点为免疫系统(淋巴)排毒时间,此段时间应安静或听音乐 。
二、晚间11-凌晨1点,肝的排毒,需在熟睡中进行。
三、凌晨1-3点,胆的排毒,亦同。
四、凌晨3-5点,肺的排毒。此即为何咳嗽的人在这段时间咳得最剧烈,因排毒动作已走到肺;不应Medicine,以免抑制废积物的排除。
五、凌晨5-7点,大肠的排毒,应上厕所排便。
六、凌晨7-9点,小肠大量吸收营养的时段,应吃早餐。疗病者最好早吃,在6点半前,养生者在7点半前,不吃早餐者应改变习惯,即使拖到9、10点吃都比不吃好。
七、半夜至凌晨4点为脊椎造血时段,必须熟睡,不宜熬夜。
------- 手、脚、身体各个穴位所对应的内脏 (图) 下面这几张图显示了,咱们的手、脚、身体各个穴位所对应的内脏。按摩的时候,对准穴位下力,才能对我们身体有益。

大小: 43.36 K
尺寸: 386 x 376
浏览: 1557 次
点击打开新窗口浏览全图

 如图所示,比如我们的脚趾分别代表了我们眼睛和耳朵,而整个脚底就相当于人体身体的主干。 下面是手

大小: 76.52 K
尺寸: 324 x 376
浏览: 1624 次
点击打开新窗口浏览全图 

      身体是革命的本钱,学会了自己给自己按摩一下吧。 拉拉耳朵养护全身器官 肾是人体重要脏器之一,乃先天之本。肾脏功能是否正常,对健康长寿有着举足轻重的作用。   
中医五行学说认为,肾主藏精,开窍于耳,医治肾脏疾病的穴位有很多在耳部。所以经常进行双耳锻炼法,可起到健肾壮腰、养身延年的作用。   
一、提拉耳垂法 双手食指放耳屏内侧后,用食指、拇指提拉耳屏、耳垂,自内向外提拉,手法由轻到重,牵拉的力量以不感疼痛为限,每次3~5分钟。此法可治头痛、头昏、神经衰弱、耳鸣等疾病。   
二、手摩耳轮法 双手握空拳,以拇、食二指沿耳轮上下来回推摩,直至耳轮充血发热。此法有健脑、强肾、聪耳、明目之功,可防治阳痿、尿频、便秘、腰腿痛、颈椎病、心慌、胸闷、头痛、头昏等病症。  
三、提拉耳尖法 用双手拇、食指夹捏耳廓尖端,向上提揪、揉、捏、摩擦15~20次,使局部发热发红。此法有镇静、止痛、清脑明目、退热、抗过敏、养肾等功效,可防治高血压、失眠、咽喉炎和皮肤病。   
四、搓弹双耳法 两手分别轻捏双耳的耳垂,再搓摩至发红发热。然后揪住耳垂往下拉,再放手让耳垂弹回。每天两三次,每次20下。此法可促进耳朵的血液循环,有健肾壮腰之功效。   
五、双手拉耳法 左手过头顶向上牵拉右侧耳朵数十次,然后右手牵拉左耳数十次。这一锻炼还可促进颌下腺、舌下腺的分泌,减轻喉咙疼痛,治慢性咽炎。   
六、双手掩耳法 两手掌掩两耳廓,手指托后脑壳,用食指压中指弹击24下,可听到“隆隆”之声,曰击“天鼓”。此刺激可活跃肾脏,有健脑、明目、强肾之功效。   
七、全耳按摩法 双手掌心摩擦发热后,向后按摩腹面(即耳正面),再向前反折按摩背面,反复按摩5~6次。此法可疏通经络,对肾脏及全身脏器均有保健作用。   
八、双手扫耳法 以双手把耳朵由后面向前扫,这时会听到“嚓嚓”的声音。每次20下,每日数次,只要长期坚持,必能强肾健身。   
以 上八法,可根据各人所需选择,或单项或几项配合进行,只要能持之以恒,一定能收到理想的效果。 简单易学的强肾健体保健法 祖国传统医学认为,肾为先天之本,生命之源,肾气充盈,则精力充沛,筋骨强健,步履轻快,神思敏捷,肾气亏损则阳气虚弱,腰膝酸软,易感风寒,生疾病等。   
肾虚病症有阴虚、阳虚之分。   肾阴虚者,有肺热、咽燥、腰膝酸软、头晕耳鸣、舌苔偏红等症状。   肾阳虚者,常见有肢体畏寒、精神萎靡、腰酸耳鸣、舌淡、体胖等症状。   
中 医认为,肢体的功能活动,包括关节、筋骨等组织的运动,皆由肝肾所支配,故有“肾主骨,骨为肾之余”的说法,因此坚持体育锻炼,以取得养筋健肾、舒筋活 络、畅通气脉、增强自身抵抗力之功效,从而达到强肾健体目的。散步、慢跑、打球、做操、练拳舞剑等,都是不错的锻炼项目。下面介绍几个简单的保健方法,您 可以试试。   搓擦腰眼:两手搓热后紧按腰部,用力搓30次。“腰为肾之府”,搓擦腰眼可疏通筋脉,增强肾脏功能。   
揉按丹田:两手搓 热,在腹部丹田处按摩30~50次。丹田乃人之真气、真精凝聚之所,为人体生命之本。此法常用之,可增强人体的免疫功能,提高人体的抵抗力,从而达到强肾 固本的目的,有利于延年益寿。   发“吹”音 “吹”与肾相应,肾属水,故有滋养肾水的功效。反复做6~9遍。   
另外,心脏对应的是“呵”音,肝脏对应的是“嘘”的音,脾对应的是“呼”的音,肺对应的是“斯”的音,三焦对应的是“唏”的音。发音的时间长一些,次数多一些。   
健脾通胃肠气的保健方法:   双手重叠,顺时针绕肚脐揉腹,以通为主,可促进胃肠气通畅,逆时针绕肚脐揉腹,则以补为主,可起到健脾作用,便秘患者,多顺时针揉,脾虚者,则加逆时针揉,每次300~500下,每天1~2次。 祝福朋友们都有一个健康的好身体!

Tags: 器官, 身体

Windows Cache Extension for PHP Beta 发布

本则新闻自于Cnbeta.com,可惜我没有IIS 7及更高版本。否则倒可以尝试尝试。。http://www.cnbeta.com/articles/92522.htm

也许您同时喜欢PHP的开发速度和Windows的易用性,但PHP和Windows的配合似乎永远没有Linux好?今天微软终于可以让Windows的PHP用户向Linux下的朋友们炫耀一下:
Windows Cache Extension for PHP Beta 发布,这是一个面向PHP的Windows缓存扩展,用于提高PHP应用程序的速度,而且无需修改任何代码!支持IIS 7.5和IIS 7.0.

  • PHP 5.2 and PHP 5.3 support
  • Configurable file cache
  • Configurable PHP opcode cache
  • Relative file path cache
  • PHP functions to obtain information about the cache status
  •  

访问:Windows Cache Extension for PHP

Tags: iis, wce, cache, extension