猿问

如何替换url中的参数值?

大家好,我是python新手,想写一个测试目录遍历的小脚本,遇到了问题,求各位大牛指教!

python 2.7.8 windows 7 x64位

测试url:http://www.waitalone.cn/index.php?id=123&abc=456&xxx=ooo

其实参数名值对个数不是固定的,这里我只是以3个为准测试。

payloads = ('../boot.ini','../etc/passwd','../windows/win.ini','../../boot.ini','../../etc/passwd')

我想要实现的是这样的功能,首先遍历payloads,然后使用其payload替换url中的参数值,但是要在替换第一个参数值的时候其它两个或者多个参数名值对保护不变,举例如下:

http://www.waitalone.cn/index.php?id=../boot.ini&abc=456&xxx=ooo
http://www.waitalone.cn/index.php?id=../etc/passwd&abc=456&xxx=ooo
.....
http://www.waitalone.cn/index.php?id=../../etc/passwd&abc=456&xxx=ooo

当替换第2个参数值的时候其它的不变:

http://www.waitalone.cn/index.php?id=123&abc=../boot.ini&xxx=ooo
...
http://www.waitalone.cn/index.php?id=123&abc=../../etc/passwd&xxx=ooo

第3个或者多个参数名值对同上面。。

我只知道如何一次性的把所有的参数值给替换掉,但是不知道如何保持其它两个不变,求大牛们指教!

波斯汪
浏览 647回答 5
5回答

慕桂英3389331

创建方法时第一个传参数为你的payloads,第二个参数和第三个参数设为带默认值的参数例如 def test(payloads,abc='456',xxx='123') 调用的时候只需要给第一个参数,因为第二,第三个参数都是由默认值的. 当然你也可以用python的可变参数或关键参数.
随时随地看视频慕课网APP

相关分类

Python
我要回答