ToB企服应用市场:ToB评测及商务社交产业平台
标题: 在一次渗出中学会编写Tamper脚本 [打印本页]
作者: 美食家大橙子 时间: 2024-5-22 11:17
标题: 在一次渗出中学会编写Tamper脚本
拿到这个网站,通过对比查询,我们发现
[img=720,322.3115577889447]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505886.png[/img]
闭合参数 finsh 时,查询出的内容更多
[img=720,329.62025316455697]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505888.png[/img]
经过进一步判断,确实存在漏洞
[img=720,326.1978947368421]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505889.png[/img]
[img=720,295.35370447886146]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505890.png[/img]
不过在测试的时候发现存在一定的过滤
[img=720,294.8197820620285]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505891.png[/img]
但是可以通过内联注释进行绕过。
这里也是加深相识了内联注释的知识点,之前只会简朴的利用 /*!50000UniON SeLeCt*/ /*!12345union*/不知其所以然,有这样一段解释,在 mysql 中 /*!...*/不是注释,mysql 为了保持兼容,它把一些特有的仅在 mysql 上用的语句放在 /*!...*/中,这样这些语句如果在其他数据库中是不会被执行,但是在 mysql 中它会执行。当后面接的数据库版本号小于自身版本号,就会将注释中的内容执行,当后面接的数据库版本号大于等于自身版本号,就会当做注释来处理。如下语句 /*!50001UniON SeLeCt*/ 这里的 50001 表示如果数据库的版本是 5.00.01 及其以上版本才会被使用。这里我们会产生一个疑问,数据库的版本也不仅仅是五位数字,也存在四位,甚至于三位,应该是会进行处理 5.7.23 也对应着 5.07.23
[img=720,400.0517464424321]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505893.png[/img]
我们起首查询出数据库的版本信息
【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
① 网安学习成长路径头脑导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析陈诉
④ 150+网安攻防实战技能电子书
⑤ 最权威CISSP 认证测验指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
[img=720,323.00469483568077]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505894.png[/img]
当前面的数字为 50723 及小于这个数的五位数字组合都可以利用成功
[img=720,327.13504417332774]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505895.png[/img]
当前面的数字为 50724 及大于这个数的五位数字组合无法利用成功
[img=720,326.66945957268535]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505896.png[/img]
我们已经手工验证过了存在 SQL 注入漏洞,但是却无法利用 sqlmap 识别出连合注入,是由于存在检测,需要内联注释进行绕过
[img=720,247.93103448275863]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505897.png[/img]
我们需要编写一个Tamper脚本
[img=720,366.5576833255488]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505898.png[/img]
我们打开 sqlmap-master\tamper 下的一个文件 htmlencode.py 我们看到就是一个查找替换的操纵
我们如今已经知道需要利用内联注释来实现绕过检测的操纵
[img=720,293.7963693764799]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202405201505900.png[/img]
我们修改代码
[code]import refrom lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWdef dependencies(): passdef tamper(payload, **kwargs): """ HTML encode (using code points) all non-alphanumeric characters (e.g. ' -> ') >>> tamper("1' AND SLEEP(5)#") '1'/!*00000AND SLEEP(5)*/#' """ if payload: replaced_text = payload replace_code = re.search(r"'(.*?)(#|--)", payload) if replace_code: replaced_text = re.sub(r"(?
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) |
Powered by Discuz! X3.4 |