马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册帐号
×
今天我们正在制作一个Python MySQL SQL注入检查工具。 这就是为什么我们命名它用Python it代码您的第一个简单的SQL注入检查漏洞
它将仅在使用网站的GET参数上工作。 你将需要: - Python 3.4 - 网络连接 - 一个脆弱的网站 - 具有Windows或Linux的计算机 如果您还没有安装Python,请从以下链接下载: 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.request 说明: 'import'用于导入库,如urllib或os,system。 选择输入类型 现在我们需要选择输入类型,第一个是很简单的,另一个更难。 这一次我们将使用第一个,但它不会影响其他代码行。 1)使用输入(“”)命令获取用户输入。 这一次将是: fullurl = input(“请指定完整的易受攻击的URL:”) 说明:' variable = input(“Input:”)'将var'变量'设置为用户输入,“Input:”是用户在输入行看到的文本。 2)使用参数指定数据: 在sys.argv中的carg: 如果carg ==“-w”: argnum = sys.argv.index(carg) argnum + = 1 fullurl = sys.argv [argnum] 说明: '如果'是一个众所周知的宏观景象。 现在,我们使用它来确定curent arg,其他行 - 表示第二个参数'in' - 检查字符串中是否有指定的文本。 编写程序以进行Web请求 这是最重要的部分。 resp = urllib.request.urlopen(fullurl +“= 1 \'或\'1 \'= \'1 \”'“) body = resp.read() fullbody = body.decode('utf-8') 说明: resp变量设置为请求响应,身体 - 响应文本,全部 - 解码的请求文本,'+'是Python上的加法变量,\是转义字符。 使程序检查目标是否易受攻击 现在,一旦得到响应,我们必须检查它是否包含SQL错误。 我们将使用这个代码: 如果“您的SQL语法中有错误”在fullbody中: print(“网站是经典的SQL注入易受攻击”) 其他: print(“网站不是经典的SQL注入易受攻击”) 说明:我们使用'if'宏来检查响应中是否有指定的文本。 扫描仪具有第一种类型的获取用户输入 与第二类型 那是啊,就是这样! 保存文件,打开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($密码)
|