web常见攻击一——暴力破解(Brute Force)



转自http://www.sundabao.com/?p=127





本人也是php新手,也许写的有错,望大神指出。

所谓的暴力破解攻击就是攻击者无限次尝试用户名和密码,试图登录网站。

如果攻击者无限次的尝试,肯定会把密码尝试出来,所以我们只能把代码写好,尽可能防止这种情况的发生。另外建议朋友们把密码设的复杂一些,这样就会给攻击者增加破解难度。

1、下面是安全性最低的代码,根本没有对用户输入做任何处理,直接操作数据库。这样是非常危险的,很容易被攻击。

3

 

2、下面中等安全的代码,可以看到笔者用mysql_real_escape_string()函数处理用户信息,这样可以有效防止用户输入非法sql语句,可是处理不了其他的非法字符(如\).mysql_real_escape_string()使用

2

 

3、下面是安全性比较高的代码,可以看到笔者先用stripslashes()函数过滤用户输入,然后再用mysql_real_escape_string()对用户输入进行sql语句过滤。stripslashes()的使用

1

使用与更新说明 1.5.8 Beta 2018-01-28 、增加了几个变量 %DomainNoPoint%为当前扫描目标域名去掉. wwwbaiducom %DomainUnderLine%为当前扫描目标域名将.换成下划线www_baidu_com %DomainCenterAndTldUnderLine%为当前扫描目标域名主体与后缀并将.换成下划线baidu_com %LastSubPath%为当前目标url最后级目录 baidu.com/admin/data/ 则%LastSubPath%为data (注:此变量需要为Url加入/结尾,如未存在子目录则程序自动抛弃此行字典。) 1.5.7 Beta 2018-01-26 、增加字典变量功能 目标域名为www.baidu.com的话 四个变量 分别是 %Domain% 为当前扫描目标域名www.baidu.com %SubDomain% 为当前扫描目标子域名www %DomainCenter% 为当前扫描目标域名主体baidu %DomainCenterAndTld% 为当前扫描目标域名主体与后缀baidu.com 二、给非head访问增加返回长度功能通过返回长度可有效识别些通过关键字无法识别的自定义404页面 三、修复若干bug并取消了启动弹框 1.5.6 Beta 2017-08-30 、修复关闭后进程不推出的问题 二、修复cookie支持兼容问题 1.5.5 Beta 2017-08-19 、修改开始按钮的显示状态为动态(根据线程状态判断) 二、恢复暂停按钮 1.5.4 Beta 2017-08-14 、接受建议调整功能可以自由输入http头不止支持useragent和cookie 二、接受建议调整界面自定义404的输入框挪到左侧 三、接受建议取消暂停按钮将开始和停止按钮合并 1.5.3 Beta 2017-08-09 、接受建议让结果表格自动下滑 二、接受建议修改对延时扫描时间的小数支持 三、修复多URL扫描的多处bug 1.5.2 Beta 2017-08-06 、接受建议加入cookie功能 二、接受建议修改对URL的处理方法去掉多余的’/’ 三、对3xx结果显示跳转后地址http://www.xxx. xxx/admin/index.php ——–> login_redir.php 1.5.1 Beta 2017-08-05 、修改若干细节 1.5 Alpha 2017-07-28 、修复延时扫描处多个bug 二、优化线程 三、修复从快捷方式启动后都取字典失败的问题 四、扫描前URL编码解决部分误报问题 1.4 至安全学员内测版2017-07-21 、修改最大并发连接为100 二、对输入Url进行智能处理获取最后个’/’的目录进行扫描 三、增加工作线程数显示控制停止后开始前的线程是否全部退出检查 1.3 Alpha 2017-07-20 、增加停止按钮 二、增加暂停按钮 三、拼接字典时自动根据字典类型增加/ 符号使扫描结果更精准 1.2 Alpha 2017-07-18 、精确扫描结果识别跳转页面 二、对输入参数进行判断 1.1 Alpha 2017-07-18 、增加列表内容不同常用状态码使用不同颜色的功能绿色为200 红色为403 二、增加点击列头后对列表内容排序的功能 三、增加右键导出结果功能 四、美化部分文本内容 五、点击开始会自动重置工具方便重复使用不必重新打开 六、增加自选加载字典模式可多选! 1.0 Alpha 2017-07-17 秉承着为人民服务的想法还有就是Windows下我确实没有什么功能比较全又稳定的此类工具了此前用过破壳扫描器和dirburte 都不稳定经常崩,御剑虽好但是缺少很多小功能。 不扯这些了介绍下功能吧 、先说说并发线程数吧,虽然默认是20 但是加大也无妨看你自己的各个参数设置和机器网络等配置了。 二、超时时间自己视情况而定也不必多介绍了。 三、这个随机xff头和xr头套用百度上段话能懂得自然懂得不懂得也无所谓很少能碰见需要用到的这种情况勾选后每次访问都会随机生成这两个IP值如果线程开的大可能比较耗cpu。 1、X-Forwarded-For是用于记录代理信息的,每经过级代理X-Forwarded-For是用于记录代理信息的,每经过级代理(匿名代理除外),代理服务器都会把这次请求的来源IP追加在X-Forwarded-For中,来自4.4.4.4的个请求,header包含这样行X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3
### 如何使用 Java 实现暴力算法 #### 什么是暴力算法? 暴力算法是种通过穷举所有可能解来找到最优解或满足条件的解的算法。它通常用于解决那些无法通过更高效的方式求解的问题,或者作为其他复杂算法的基础。 在给定的例子中,BF 算法(Brute Force Algorithm)可以用来查找子串是否存在于母串中[^1]。以下是基于此原理的个具体实现及其解释: --- #### 示例代码:Java 中的 BF 字符串匹配算法 下面是个简单的 BF 算法实现,用于判断目标字符串 `pattern` 是否出现在源字符串 `text` 中。 ```java public class BruteForceAlgorithm { public static int bruteForceSearch(String text, String pattern) { int n = text.length(); // 母串长度 int m = pattern.length(); // 子串长度 for (int i = 0; i <= n - m; i++) { // 遍历母串中的每个位置 int j; for (j = 0; j < m && text.charAt(i + j) == pattern.charAt(j); j++); // 对应字符逐比较 if (j == m) { // 如果完全匹配,则返回起始索引 return i; } } return -1; // 若未找到匹配项则返回 -1 } public static void main(String[] args) { String text = "hello world"; // 母串 String pattern = "world"; // 子串 int result = bruteForceSearch(text, pattern); System.out.println(result != -1 ? "Pattern found at index: " + result : "Pattern not found"); } } ``` 上述程序实现了基本的 BF 字符串匹配逻辑。核心部分在于双重循环结构——外层控制滑动窗口的位置,而内层负责逐个对比当前窗口内的字符与模式串的内容。 --- #### 关键点说明 1. **时间复杂度分析** - 最坏情况下,该算法的时间复杂度为 O(n * m),其中 n 是主串长度,m 是模式串长度。 - 当每次尝试都几乎成功直到最后个字符才失败时达到最差性能。 2. **空间复杂度** - 此版本的空间复杂度仅为 O(1),因为除了几个计数器之外没有任何额外的数据存储需求。 3. **边界情况处理** - 如果模式串为空 (`""`) 或者其长度大于主串,则可以直接得出结论无需进步计算。 4. **实际应用扩展** - 可以修改函数使其支持大小写敏感/不敏感选项。 - 还能调整成寻找多个实例而非仅第个出现位置的功能。 --- #### 动态验证码生成补充 虽然本题主要讨论的是 BF 算法的具体实现方式,但提到的另个引用涉及到了 Java Servlet 技术下的动态验证码生成功能[^2]。这属于 Web 开发领域的部分,如果感兴趣的话也可以深入研究两者结合的应用场景比如表单验证安全性提升等方面的知识点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值