PyCalX 1&2
我们点击source查看代码
(放了关键代码)
1 | def get_value(val): |
我们发现对value1,op和value2的值进行了过滤
且op的第一个字母是+-*/!
的一种,value和value2的值只能为数字
简单来说这个网页就是个计算器
执行代码为
1 | calc_eval = str(repr(value1)) + str(op) + str(repr(value2)) |
由于op只判断了第一个值,我们可以在其后添加单引号,并注释后面的单引号
1 | '1' +' ' and source in FLAG# |
我们可以看到op输入+’,成功闭合语句。然后再value2的地方构造语句。
这里的value由于and的存在限定了返回值只能为True/False,也就是1/0
然后我们爆破source就可以了
1 | import string |
得到flag