#我的笔记#web渗透

The first day,fighting.

Web渗透测试:

渗透测试是对系统安全性的测试,通过模拟恶意黑客的攻击方法,来评估系统安全的一种评估方法。


1、SQL注入攻击

首先找到带有参数传递的URL页面,如搜索页面、登录页面、提交评论页面等。

对于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的FORM标签来辨别是否还有参数传递,在<FORM>和</FORM>的标签中间的每一个参数传递都有可能被利用。

当找不到有输入行为的页面时候,可以尝试找一些带有某些参数的特殊的URL,如HTTP://DOMAIN/INDEX.ASP?ID=10

在URL参数或表单中加入某些特殊的SQL语句或SQL片段,如在登录页面的URL中输入HTTP://DOMAIN/INDEX.ASP?USERNAME='HI' OR 1=1

根据实际情况,SQL注入请求可以使用以下语句:

' or 1=1--    

" or 1=1--

or 1=1--

' or 'a'='a

" or "a"="a

') or ('a'='a

OR是一个逻辑运算符,在判断多个条件的时候,只要一个成立,则等式就成立,后面的AND就不再执行判断了,也就是说绕过了密码验证,只用用户名就可以登录。

--是忽略或注释,通过连接符注释掉后面的密码验证(对access数据库无效)。

预防SQL注入:转义敏感字符及字符串;屏蔽出错信息;在服务端正式处理之前对提交数据的合法性进行检查(合法性检查主要包括三项:数据类型,数据长度,敏感字符的校验)。最根本的解决手段是在确认客户端的输入合法之前,服务端拒绝进行关键性的处理操作。

SQL注入步骤:

首先,判断环境,寻找注入点,判断数据库类型。

其次,根据注入参数类型,在南海中重构SQL语句的原貌,按参数类型主要分为三种:

(A)ID=49

这类注入的参数是数字型,SQL语句原貌大致如下:

select * from 表名 where 字段=49

注入的参数为ID=49 and [查询条件],即生成语句:

select * from 表名 where 字段=49 And [查询条件]

(B)class=连续剧

这类注入的参数是字符型,SQL语句原貌大致如下:

select * from 表名 where 字段=‘连续剧’

注入的参数为class=连续剧’ and [查询条件] and ' ' ='  ,即生成语句:

select * from 表名 where 字段=‘连续剧’ and [查询条件] and ' '=' ' 

搜索时没过滤参数的,如keyword=关键字,SQL语句原貌大致如下:

Select * from 表名 where 字段like ’%关键字%’

注入的参数为keyword=’ and [查询条件] and ‘%25’=’, 即是生成语句:

Select * from 表名 where字段like ’%’ and [查询条件] and ‘%’=’%’

接着,将查询条件替换成SQL语句,猜解表名,例如:

ID=49 And (Select Count(*) from Admin)>=0

如果页面就与ID=49的相同,说明附加条件成立,即表Admin存在,反之,即不存在(请牢记这种方法)。如此循环,直至猜到表名为止。

表名猜出来后,将Count(*)替换成Count(字段名),用同样的原理猜解字段名。

最后,在表名和列名猜解成功后,再使用SQL语句,得出字段的值。

SQL注入常用函数:

Access: asc(字符),SQL Server: unicode(字符)

作用:返回某字符的ASCII码

Access: chr(数字),SQL Server: nchar(数字)

作用:根据ASCII码返回字符

Access: mid(字符串,N,L),

SQL Server: substring(字符串,N,L)

作用:返回字符串从N个字符起长度为L的子字符串,即N到N+L之间的字符串

Access:  abc(数字),SQL Server: abc(数字)

作用:返回数字的绝对值(在猜解汉字的时候会用到)

Access: A between B And C ,SQL Server: A between B And C 

作用:判断A是否界于B和C之间

中文处理方法:

access:中文的ASCII码可能会出现负数,取出该负数后用abs()取绝对值,汉字字符不变。

SQL Server:中文的ASCII为正数,但由于是UNICODE的双位编码,不能用函数ascii()取得ASCII码。必须用函数Unicode()返回Unicode值,再用nchar函数取得对应的中文字符。

注意,引用数字时不需要按添加开始和结尾的单引号定界符。数据库处理数值类型的值时,数值不带引号。





2、Cross-site scripting(XSS):跨站点脚本攻击

首先找到带有参数传递的URL,如登录页面,搜索页面,提交评论,发表留言页面等。

其次,在页面参数中输入如下语句:<script>alert(document.cookie)</script>

当用户浏览时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说明该网站存在XSS漏洞。

预防XSS漏洞:对JavaScript,VB script,HTML,ActiveX,Flash等语句或脚本进行转义;在服务端正式处理之前对提交数据的合法性进行检查(合法性检查主要包括三项:数据类型,数据长度,敏感字符的校验)。

3、CSRF:跨站点伪造请求

与XSS不同,且攻击方式几乎相左,XSS是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

XSS和CSRF目的在于窃取用户的信息,如session和cookies.

4、Email Header Injection:邮件标头注入

如果表单用于发送email,表单中可能包括subject输入项(邮件标题),我们要验证subje中应能escape掉\n标识。

因为“\n”是换行,如果在subje中输入“hello\ncc:spamvictim@example.com”,可能会形成:

subject:hello

cc:spamvictim@example.com

如果允许用户使用这样的subject,那他可能会利用这个缺陷通过我们的平台给其他用户发送垃圾邮件。


5、Directory Traversal:目录遍历

程序中没有过滤用户输入的“../”和“./”之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。

测试方法:在URL中输入一定数量的“../”和“./”,验证系统是否escape掉了这些目录跳转符。

预防目录遍历:限制Web应用在服务器上的运行,进行严格的输入验证,控制用户输入非法路径。

6、exposed err messages:错误信息

首先找到一些错误页面,比如404或500页面。

验证在调试未开通过的情况下,是否给出了有好的错误提示信息,比如“你访问的页面不存在”等,而并非暴露一些程序代码。

预防错误信息:测试人员在进行需求检查时,应该对出错信息进行详细检查,比如是否给出了出错信息,是否给出了正确的出错信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容

  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/sq...
    道无涯_cc76阅读 1,935评论 0 2
  • 漏洞挖掘与利用 测试环境的搭建 引言 为什么要搭建本地测试环境?我想下面的东西能够回答你的疑惑。 第二百八十五条 ...
    作业没写完阅读 3,177评论 0 4
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 10,281评论 2 22
  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,039评论 0 5
  • 注入攻击的分类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传...
    查无此人asdasd阅读 1,603评论 0 5