为了账号安全,请及时绑定邮箱和手机立即绑定

如何替换url中的参数值?

如何替换url中的参数值?

波斯汪 2019-02-26 13:49:33
大家好,我是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=ooohttp://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个或者多个参数名值对同上面。。 我只知道如何一次性的把所有的参数值给替换掉,但是不知道如何保持其它两个不变,求大牛们指教!
查看完整描述

5 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

创建方法时第一个传参数为你的payloads,第二个参数和第三个参数设为带默认值的参数例如

def test(payloads,abc='456',xxx='123')

调用的时候只需要给第一个参数,因为第二,第三个参数都是由默认值的.
当然你也可以用python的可变参数或关键参数.

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 643 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信