客户端验证

在本章中,我们将学习验证如何帮助Python Pentesting.

验证的主要目标是测试并确保用户提供了所需的必要且格式正确的信息.成功完成一项操作.

有两种不同类型的验证和减号;

  • client-边验证(网络浏览器)

  • 服务器端验证

服务器端验证&客户端验证

在回发会话期间在服务器端进行的用户输入验证称为服务器端验证. PHP和ASP.Net等语言使用服务器端验证.一旦服务器端的验证过程结束,就会通过生成新的动态网页将反馈发送回客户端.在服务器端验证的帮助下,我们可以获得针对恶意用户的保护.

另一方面,在客户端进行的用户输入验证称为客户端验证.脚本语言(如JavaScript和VBScript)用于客户端验证.在这种验证中,所有用户输入验证仅在用户的浏览器中完成.它不像服务器端验证那么安全,因为黑客可以轻松绕过我们的客户端脚本语言并向服务器提交危险输入.

回火客户端参数:验证旁路

可以在POST和GET方法的帮助下完成HTTP协议传递的参数. GET用于从指定资源请求数据,POST用于将数据发送到服务器以创建或更新资源.这两种方法之间的一个主要区别是,如果网站使用GET方法,则传递参数显示在URL中,我们可以更改此参数并将其传递给Web服务器.例如,查询字符串(名称/值对)在GET请求的URL中发送:/test/hello_form.php?name1 = value1& name2 = value2 .另一方面,使用POST方法时不显示参数.使用POST发送到服务器的数据存储在HTTP请求的请求主体中.例如,POST /test/hello_form.php HTTP/1.1主机:'URL'name1 = value1& name2 = value2 .

用于验证绕过的Python模块

我们将要使用的Python模块是 mechanize .它是一个Python Web浏览器,它提供了在网页中获取Web表单的便利,也便于提交输入值.在mechanize的帮助下,我们可以绕过验证并调整客户端参数.但是,在我们的Python脚本中导入它之前,我们需要通过执行以下命令来安装它;减去;

 
 pip install mechanize

示例

以下是一个Python脚本,它使用机械化来绕过使用POST方法传递参数的Web表单验证. Web表单可以从 https://www.it1352.comhttps://www.tutorialspoint.com/php/php_validation_example链接中获取. htm 并且可以在您选择的任何虚拟网站中使用.

首先,让我们导入机械化浏览器 :

 
 import mechanize

现在,我们将创建一个名为 brwsr 的机械化对象浏览器 : 去;

 
 brwsr = mechanize.Browser()

下一行代码显示用户代理不是机器人.

 
 brwsr.set_handle_robots(False)

现在,我们需要提供虚拟网站的网址,其中包含我们需要绕过验证的网络表单.

url = input("Enter URL ")

现在,以下行将一些parenters设置为true.

 
 brwsr.set_handle_equiv(True)
 brwsr.set_handle_gzip(True)
 brwsr. set_handle_redirect(True)
 brwsr.set_handle_referer(True)

接下来,它将打开网页并在该页面上打印网页表格.

 
 brwsr.open(url)
 for form in brwsr.forms():
 print form

下一行代码将绕过给定字段的验证.

 
 brwsr.select_form( nr = 0)
 brwsr.form ['name'] =''
 brwsr.form ['gender'] =''
 brwsr.submit()

可以根据我们要绕过验证的Web表单字段更改脚本的最后一部分.在上面的脚本中,我们采用了两个字段 -  'name''gender',这些字段不能留空(您可以在Web表单的编码中看到)但是该脚本将绕过该验证.