DVWA靶场SQL注入POC

学习编写poc,先从最简单的DVWA靶场的sql注入练习

Low

POC:

"""

Level——low:

"""

import requests

import browser_cookie3

cookie = browser_cookie3.firefox()

response = requests.get("http://192.168.21.211/DVWA/vulnerabilities/sqli/?id=1'&Submit=Submit#",cookies=cookie)

 

re = 'syntax'

flag=re in str(response.content)

 

if flag:

    print("It looks likely vulnerable")

else:

    print("It is strong")

运行结果

这段代码使用了requests库和browser_cookie3库来进行HTTP请求,并判断给定的URL是否存在SQL注入漏洞。

首先,代码导入了requests和browser_cookie3库。

接下来,通过`cookie = browser_cookie3.firefox()`使用browser_cookie3库获取firefox浏览器中的所有Cookie信息。这里使用的是firefox浏览器的方法,所以在其他浏览器中可能无法获取到Cookie信息。可以换其他浏览器方法,比如cookie = browser_cookie3.chrome()或者cookie = browser_cookie3.load()获取全部浏览器的信息,但是效果好像没有指定浏览器好

然后,使用`requests.get()`方法发送带有Cookie的GET请求。`"http://192.168.21.211/DVWA/vulnerabilities/sqli/?id=1'&Submit=Submit#"`是请求的URL,`cookies=cookie`将获取到的Cookie添加到请求中。

接下来,定义了一个变量re,并将其设为字符串"syntax"。

然后,使用`re in str(response.content)`来判断字符串"syntax"是否存在于响应内容中。将判断结果赋值给变量flag。

最后,根据flag的值来输出相应的结果。如果flag为True,则输出"It looks likely vulnerable",表示存在可能的漏洞;如果flag为False,则输出"It is strong",表示不存在漏洞。

请确保在运行代码之前已经安装了requests库和browser_cookie3库,并且将请求的URL替换为适合你的实际情况的URL。另外,要注意浏览器的兼容性,不同浏览器可能对cookie的存储方式不同。

Medium

POC:

##Level——Medium

import requests

import browser_cookie3

cookie = browser_cookie3.firefox()

#这里因为Content-Type:application/x-www-form-urlencoded,所以post构造为该模式(根据Payload内的值)

datas = {"id":"1'","Submit":"Submit"}

response = requests.post("http://192.168.21.211/DVWA/vulnerabilities/sqli/?id=1'&Submit=Submit#",cookies=cookie,data=datas)

re = 'syntax'

flag=re in str(response.content)

if flag:

   print("It looks likely vulnerable")

else:

     print("It is strong")

运行结果

这段代码与之前的代码类似,但使用POST请求发送数据来测试是否存在SQL注入漏洞。

首先,导入了requests和browser_cookie3库。

接下来,使用browser_cookie3.firefox()来获取firefox浏览器中的所有Cookie信息。

然后,定义了一个字典datas,其中包含了POST请求需要的数据。这里使用了{"id":"1'","Submit":"Submit"}作为数据。根据具体情况,你可能需要根据实际的Payload来构造合适的数据。

然后,使用requests.post()方法发送带有Cookie和数据的POST请求。"http://192.168.21.211/DVWA/vulnerabilities/sqli/?id=1'&Submit=Submit#"是请求的URL,cookies=cookie将获取到的Cookie添加到请求中,data=datas将数据添加到请求中。

接下来,定义了一个变量re,并将其设为字符串"syntax"。

然后,使用re in str(response.content)来判断字符串"syntax"是否存在于响应内容中。将判断结果赋值给变量flag。

最后,根据flag的值来输出相应的结果。如果flag为True,则输出"It looks likely vulnerable",表示存在可能的漏洞;如果flag为False,则输出"It is strong",表示不存在漏洞。

请确保在运行代码之前已经安装了requests库和browser_cookie3库,并且将请求的URL替换为适合你的实际情况的URL。另外,要注意根据实际情况构造合适的POST数据。

High

POC:

import requests

import browser_cookie3

cookie = browser_cookie3.firefox()

datas = {"id":"1'","Submit":"Submit"}

response1 = requests.post("http://192.168.21.211/DVWA/vulnerabilities/sqli/session-input.php",cookies=cookie,data=datas)

response2 = requests.get("http://192.168.21.211/DVWA/vulnerabilities/sqli/",cookies=cookie)#high中,查询和回显不在一个页面中,所以在这里分post查询和get获取页面

re = 'wrong'#这里换了特征语句

flag=re in str(response2.content)

if flag:

    print("It looks likely vulnerable")

else:

    print("It is strong")

运行结果

这段代码与之前的代码类似,也使用了requests和browser_cookie3库来进行HTTP请求,并判断给定的URL是否存在SQL注入漏洞。不过这里测试点与之前的测试点不同,需要发送两个请求来测试漏洞。

首先,通过`browser_cookie3.firefox()`使用browser_cookie3库获取Firefox浏览器中的所有Cookie信息。需要注意的是,由于不同浏览器中Cookie的存储方式可能不同,所以在这里需要根据实际情况来选择相应的方法。

然后,定义了一个字典`datas`,其中包含了POST请求需要的数据。这里使用了`{"id":"1'","Submit":"Submit"}`作为数据。

接下来,通过`requests.post()`方法发送带有Cookie和数据的POST请求。`"http://192.168.21.211/DVWA/vulnerabilities/sqli/session-input.php"`是请求的URL,`cookies=cookie`将获取到的Cookie添加到请求中,`data=datas`将数据添加到请求中。

然后,再通过`requests.get()`方法发送带有Cookie的GET请求。`"http://192.168.21.211/DVWA/vulnerabilities/sqli/"`是请求的URL,`cookies=cookie`将获取到的Cookie添加到请求中。

接下来,定义了一个变量re,并将其设为字符串"wrong"。

然后,使用`re in str(response2.content)`来判断字符串"wrong"是否存在于响应内容中。将判断结果赋值给变量flag。

最后,根据flag的值来输出相应的结果。如果flag为True,则输出"It looks likely vulnerable",表示存在可能的漏洞;如果flag为False,则输出"It is strong",表示不存在漏洞。

请确保在运行代码之前已经安装了requests库和browser_cookie3库,并且将请求的URL替换为适合你的实际情况的URL。另外,要注意浏览器的兼容性,不同浏览器可能对cookie的存储方式不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值