使用Python编写您的第一个简单的SQL注入检查漏洞
今天我们正在制作一个Python MySQL SQL注入检查工具。 这就是为什么我们命名它用Python it代码您的第一个简单的SQL注入检查漏洞它将仅在使用网站的GET参数上工作。你将需要:- Python 3.4- 网络连接- 一个脆弱的网站- 具有Windows或Linux的计算机如果您还没有安装Python,请从以下链接下载:https://www.python.org/downloads/Python基础知识Python是用C编写的,它是黑客工具最简单的编程语言之一,它包含很多非常有用的lib,今天我们将使用其中的1个,查找网站进行测试您可以使用简单的SQLi dorks(如inurl:“index.php?cat_id =”)轻松找到一个用于测试的网站。 您可以在网络上找到易受攻击的网站转储。一步一步使用Python编写您的第一个简单的SQLi检查漏洞:
在开始编码之前,制作一个新的.py文件。导入主库这一次我们将使用sys,urllib和urllib.request模块,因此通过使用import sys,urllib,urllib.request或import sys导入这些模块,在新行中导入urllib并导入urllib.requesthttp://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli1.jpg说明: 'import'用于导入库,如urllib或os,system。选择输入类型现在我们需要选择输入类型,第一个是很简单的,另一个更难。 这一次我们将使用第一个,但它不会影响其他代码行。1)使用输入(“”)命令获取用户输入。 这一次将是:fullurl = input(“请指定完整的易受攻击的URL:”)http://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli2.jpg说明:' variable = input(“Input:”)'将var'变量'设置为用户输入,“Input:”是用户在输入行看到的文本。2)使用参数指定数据:在sys.argv中的carg:如果carg ==“-w”:argnum = sys.argv.index(carg)argnum + = 1fullurl = sys.argv http://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli3.jpg说明: '如果'是一个众所周知的宏观景象。 现在,我们使用它来确定curent arg,其他行 - 表示第二个参数'in' - 检查字符串中是否有指定的文本。编写程序以进行Web请求这是最重要的部分。resp = urllib.request.urlopen(fullurl +“= 1 \'或\'1 \'= \'1 \”'“)body = resp.read()fullbody = body.decode('utf-8')http://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli4.jpg说明: resp变量设置为请求响应,身体 - 响应文本,全部 - 解码的请求文本,'+'是Python上的加法变量,\是转义字符。使程序检查目标是否易受攻击现在,一旦得到响应,我们必须检查它是否包含SQL错误。我们将使用这个代码:如果“您的SQL语法中有错误”在fullbody中:print(“网站是经典的SQL注入易受攻击”)其他:print(“网站不是经典的SQL注入易受攻击”)http://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli5.jpg说明:我们使用'if'宏来检查响应中是否有指定的文本。扫描仪具有第一种类型的获取用户输入http://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli6.jpg与第二类型http://do5p5je931nb0.cloudfront.net/wp-content/uploads/2015/06/python-simple-sqli7.jpg那是啊,就是这样!保存文件,打开cmd并运行'python filename.py'并输入请求的信息,如果您使用第二种方法,请使用'python filenamy.py -w网站'。 它将检查该网站的脆弱性复制的代码可能无法正常工作,请将其重写为文件🙂如果您的语法错误当选项卡出现问题时,会出现意外的缩进 。语法问题大多出现在宏问题上。 如果发生此错误,请检查您的宏有效性。如何防止简单的SQL注入
如果非常简单,防止SQLi ON MYSQL。 只需使用mysql_real_escape字符串进行查询,例如:$ query = sprintf(“SELECT * FROM users where user ='%s'AND password ='%s',mysql_real_escape_string($用户名)mysql_real_escape_string($密码)
页:
[1]