我正在学习盲sql注入。这是我的脚本的一部分:
...
datas = {"username":"admin","password":"\'or pass like \"x%\" --"}
res = requests.post(url,data=datas).content
...
"password":
之后的字符串应该以单引号开头,所以在打印时我希望有类似''or pass like "x%" --'
的内容(实际上我不确定看到这是否正常,python显然会将双引号更改为单引号那些)。但我得到'\'or pass like "x%" --'
。
答案 0 :(得分:3)
当您在python中编写字符串时,您可以选择"write them with double quotes"
或'write them with single quotes'
。您只需要转义与您用于字符串的引号相匹配的引号。所以,'This "is" a valid string'
,但要将这些双引号更改为单引号,'You \'need\' to do this'
。因此,在你的字符串中,你正确地转义双引号,因为你有一个双引号字符串,但你不需要转义单引号。
但是,没关系,因为\'
仍然被python正确解释;它只是将其打印为转义字符,因此您知道它是字符'
而不是字符串的结尾。
>>> "\'\""
'\'"'
>>> print("\'\"")
'"