首页 文章 精选 留言 我的

精选列表

搜索[表单验证],共10000篇文章
优秀的个人博客,低调大师

Bugku-代码审计(数字验证正则绕过)

各位小伙伴,我把Bugku上面的关于代码审计类型的WP为两部分,主要是为了各位小伙伴的阅读质量 希望你们能够多多包涵哦!!!! 7: 解题思路:首先应该了解一个关于php弱类型的知识: 再继续阅读信息就会发现:、 第一处if ($_GET['name'] == $_GET['password'])判断时两数组确实是不同的, 但在第二处else if (sha1($_GET['name']) === sha1($_GET['password']))判断时由于sha1()函数无法处理数组类型,将报错并返回false,false === false条件成立,这样就绕过了sha()函数获得flag,这个时候需要构造类似于:http://120.24.86.145:9009/7.php?name[%20]=1&password[%20]=2 就会得到答案:Flag: flag{bugku--daimasj-a2} 8: 解题思路:关于这一题最主要的是需要知道:md5('240610708') == md5('QNKCDZO'), 当然前提是要明白PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。就可以得到答案,那么就需要构造PAYLOAD:http://120.24.86.145:9009/13.php?a=240610708 就会得到答案:flag{bugku-dmsj-am9ls} 9: 解题思路:针对于这个问题首先需要查询ord()函数,就会明白题目的含义: ord() 函数返回字符串的首个字符的 ASCII 值。 使用在线十六进制转化工具(https://tool.lu/hexconvert/)就会得到: 得到最后转化的十六进制,需要在其前面加上0x才能够表明是十六进制 因此最后的payload:http://120.24.86.145:9009/20.php?password=0xdeadc0de 最后得到答案:flag{Bugku-admin-ctfdaimash} 10: 解题思路:首先使需要了解关于正则表达式的匹配问题,然后就是需要使用数组进行绕过 解决方案一:使用数组进行绕过: Payload:http://120.24.86.145:9009/5.php?password[ ]=1243(这个部分加不加并不影响最终结果; 解决方案二:使用ereg()null截断漏洞,再使用科学计数法来构造else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)这个条件,即1000000000用1e9来表示,在加上-来构造满足(strpos ($_GET['password'], '-') !== FALSE,于是就可以构造: payload:http://120.24.86.145:9009/5.php?password=1e9%00*-* 这一个构造可以根据一步一步的调试进行,最终能够得到结果:例如: 最后得到结果:Flag: flag{bugku-dm-sj-a12JH8} 11: 解题思路:这一题直接使用数组进行绕过就可以得到答案: Payload:http://120.24.86.145:9009/15.php?ctf[ ]=#biubiubiu 当然也是可以这样的(http://120.24.86.145:9009/15.php?ctf[%20]=) 最后得到结果: 最后得到答案:Flag: flag{Bugku-D-M-S-J572} 12: 解题思路:构造那么久就是没有思路,看了一些其他人的解析构造,好像说的都是一样,都没有解释为什么直接使用插件HackBar就可以得到结果,大多数人都是直接写上使用这个插件就会得到答案: 关于火狐浏览器中的Hackbar插件,我会收集一些资料,整理好之后上传到博文中。 希望各位能够多多包涵(QAQ) 您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。 作者: 落花四月 出处: https://www.cnblogs.com/lxz-1263030049/ 关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教! 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我 声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

优秀的个人博客,低调大师

Hive中近似计算Histogram的验证

Histogram可以更直观的反映数据的分布情况,有了Histogram就可以对执行参数和执行计划有着更有针对性的优化。但想要得到准确的Histogram,需要巨大的计算量。如果能近似得到相对准确Histogram,就会变得很有价值。目前HIVE中实现了针对Numeric的近似的Histogram的计算逻辑。NumericHistogram的实现说明如下: /** * A generic, re-usable histogram class that supports partial aggregations. * The algorithm is a heuristic adapted from the following paper: * Yael Ben-Haim and Elad Tom-Tov, "A streaming parallel decision tree algorithm", * J. Machine Learning Research 11 (2010), pp. 849--872. Although there are no approximation * guarantees, it appears to work well with adequate data and a large (e.g., 20-80) number * of histogram bins. */ 感兴趣的可以参考论文,“A streaming parallel decision tree algorithm”。 我简单的测试了下: package sunwg.test; public class testHis { public static void main(String[] args) { NumericHistogram numericHistogram = new NumericHistogram(); numericHistogram.allocate(10); for (double i=1.0; i<=50.0; i++) { numericHistogram.add(i); } System.out.println(Math.round(numericHistogram.quantile(0.1))); System.out.println(Math.round(numericHistogram.quantile(0.2))); System.out.println(Math.round(numericHistogram.quantile(0.3))); System.out.println(Math.round(numericHistogram.quantile(0.4))); System.out.println(Math.round(numericHistogram.quantile(0.5))); System.out.println(Math.round(numericHistogram.quantile(0.6))); System.out.println(Math.round(numericHistogram.quantile(0.7))); System.out.println(Math.round(numericHistogram.quantile(0.8))); System.out.println(Math.round(numericHistogram.quantile(0.9))); System.out.println(Math.round(numericHistogram.quantile(1.0))); } 结果如下: 3 8 12 18 24 29 33 38 42 48 基本上还是挺靠谱的,如果想提高准确率,可以增加num_bins的个数,也就是上面的10。 numericHistogram.allocate(10); 并且,NumericHistogram也支持多个partial Histogram的merge操作。 之所以要看这些内容,主要希望数据集成可以通过对数据的研究,获得数据的特征,选择更合适的splitpk,将任务可以拆分得更加平均,减少长尾task,也把用户从优化中解放出来。

优秀的个人博客,低调大师

Android 手机号码格式验证

package com.app.android01 ; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.widget.TextView; public class MainActivity extends Activity { private TextView textView ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView( R.layout.activity_main ) ; //手机号码 textView = (TextView) findViewById( R.id.tv ) ; textView.setText( "sssss"+ isMobileNO( "17251101140") ); } /** * 判断手机格式是否正确 * @param mobiles * @return * 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 * 联通:130、131、132、152、155、156、185、186 * 电信:133、153、180、189、(1349卫通) * 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9 */ public static boolean isMobileNO(String mobiles) { //"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。 String telRegex = "[1][34578]\\d{9}" ; if (TextUtils.isEmpty(mobiles)) return false ; else return mobiles.matches( telRegex ) ; } }

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册