zoukankan      html  css  js  c++  java
  • iscc 2018 部分题解wp(更新中)

    WEB1 比较数字大小

    看一下源代码:发现 输入的值只能为3 那么就改大一点吧

    得到flag

    WEb2 

    首先先看一下那个代码吧

    发现是一个strcmp 函数 只需要传递一个password 过去那么构造为 password[]=abc就可以绕过了

    本地诱惑

    点进去看了一下

    首先还是看一下源代码

    发现了flag

    你能跨过去吗?

    首先进行URL解码 去除不必要的字符,截取一段base64解码获得:alert("key:/%nsfocusXSStest%/")<

    将key填入后提交获得flag

    一切都是套路

    看到提示了。好像有个文件忘记删了 

    请ping我的ip 看你能Ping通吗?

    看了一下是一个命令执行

    Please give me username and password!

    继续更新

     昨天是打红帽杯耽误了,红帽杯线下的AWD 实在是大佬太多了!!!!!!!!

    然后没时间去写WP ,就叫老虎发了一份给我。下面的这些是china.H.L.B 的WP  发给大家看看吧

    你能绕过吗?

     

    随便点一个,如下图所示;

    把id=2,修改成6668952,如下图所示;

     发现id后没有过滤,所以尝试文件包含漏洞,读取包含flag的文件,如下图所示;

    这个是base64的弄到一个页面

    web02

    题目链接中文字中有本机链接,所以抓包修改http请求头,如下图所示;

     

    Client-IP:127.0.0.1

    点击Intercept is on 放包,如下图所示;

    查看网页,如下图所示;

    SQL注入的艺术

     点击个人信息,如下图所示;

    把链接放入sqlmap,尝试注入,如下图所示;

    发现是宽字符注入并且提示有WAF,所以更尝试绕过WAF,如下图所示;

    sqlmap -u “http://118.190.152.202:8015/index.php?id=1“ —tamper unmagicquotes.py —batch -v 3 —level 3 –dump

    试试看

    打开链接,如下图所示;

    在img=的地方,测试是否有文件包含漏洞,如下所示;

    发现有文件包含漏洞,如图形所示;

    A. payload,如图下所示;

    B. 证明存在的文件包含漏洞,如图下所示;

    (4) 构造payload,如图下所示;

    (5) 打开网页后是空白,如图下所示;

    (6) 打开网页源码,如图下所示;

    Collide

    打开链接发现是代码审计题目,如下图所示;

    (2) 审计源码后,使用HashPump攻击;
    (3) 安装HashPump;

    A.方法一:
    git clone https://github.com/bwall/HashPump.git
    apt-get install g++ libssl-dev
    cd HashPump
    make
    make install
    B.方法二:
    pip install hashpumpy
    (4) 运行HashPump并且将x替换成%后用hacbar urldecode,如下图所示;

    (5) 运行hackbar,如下图所示;

    (6) 用burp截包改md5值,如下图所示;

    Only admin can see flag

    (1) 打开题目链接,发现只有一个登录对话框。如下图所示;

    (2) 查看源码,发现有一个index.txt的提示,如下图所示;

    (3) 打开index.txt,审计源码,发现是CBC反转漏洞,如下图所示;

    (4) 下面介绍一下CBC字节翻转攻击的原理,如下图所示;

    (5) 如上图所示,CBC加密的原理图;
    A. Plaintext:待加密的数据。
    B. IV:用于随机化加密的比特块,保证即使对相同明文多次加密,也可以得到不同的密文。
    C. Ciphertext:加密后的数据。
    D. 在这里重要的一点是,CBC工作于一个固定长度的比特组,将其称之为块。在本文中,我们将使用包含16字节的块。
    (6) 整个加密的过程简单说来就是;
    A.首先将明文分组(常见的以16字节为一组),位数不足的使用特殊字符填充。
    B.生成一个随机的初始化向量(IV)和一个密钥。
    C.将IV和第一组明文异或。
    D.用密钥对C中xor后产生的密文加密。
    E.用D中产生的密文对第二组明文进行xor操作。
    F.用密钥对E中产生的密文加密。
    G.重复E-G,到最后一组明文。
    H.将IV和加密后的密文拼接在一起,得到最终的密文。
    从第一块开始,首先与一个初始向量iv异或(iv只在第一处作用),然后把异或的结果配合key进行加密,得到第一块的密文,并且把加密的结果与下一块的明文进行异或,一直这样进行下去。因此这种模式最重要的特点就是:
    (7) 前一块的密文用来产生后一块的密文,如下图所示;

    (8) 这是解密过程,解密的过程其实只要理解了加密,反过来看解密过程就也很简单了,同样的,前一块密文参与下一块密文的还原。
    A.从密文中提取出IV,然后将密文分组。
    B.使用密钥对第一组的密文解密,然后和IV进行xor得到明文。
    C.使用密钥对第二组密文解密,然后和2中的密文xor得到明文。
    D.重复B-C,直到最后一组密文。
    (9) 这幅图是我们进行翻转攻击的原理图:

    这里可以注意到前一块Ciphertext用来产生下一块明文,如果我们改变前一块Ciphertext中的一个字节,然后和下一块解密后的密文xor,就可以得到一个不同的明文,而这个明文是我们可以控制的。利用这一点,我们就欺骗服务端或者绕过过滤器。
    (10) 在登录对话框随意输入一个帐号和密码并且使用bp抓包,如下图所示;

    (11) 查看返回包,如下图所示;

    (12) 使用脚本进行反转,如下图所示;

    (13) bp中的cookie中设置iv和翻转后的cipher并且把post值清空后提交,如下图所示;

    (14) 返回结果如下图所示;

    (15) 服务器提示反序列化失败,但是其实我们这个时候只要对这个进行base64解码就会发现,我们的username已经变成了admin;原因是在我们为了修改mdmin为admin的时候,是通过修改第一块数据来修改的,所以第一个块数据被破坏了。因为程序中要求username要等于admin所以不能利用文章里的说的填充字符。 又因为是第一个块数据被破坏,第一个块数据是和IV有关,所以只要将在CBC字符翻转攻击,得到新的IV就可以修复第一块数据。如下图所示;

    (16) 把得到的数值替换iv,cipher不动然后提交。如下图所示;

     

    PHP是世界上最好的语言           

    这个其实可以扫描的。也可以用0e 绕过

     (1) 打开链接发现是代码审计,如下图所示;

    (2) 使用扫描器扫描,发现有no_md5.php文件。如下图所示;

    (3) 审计题目所给的源码,发现是文件包含。如下图所示;

    (4) 所以这样构造语句,如下图所示:

    /no_md5.php?a=GLOBALS

    Only Admin

    (2) 使用扫描器扫描一下,发现了备份文件。如下图所示;

    (3) 把备份文件解压缩,如下图所示;

    (4) 打开config.php发现了需要审计的代码,如下图所示;

    (5) 在登录对话框的email地方输入’ or 1#并且随意输入password,如下图所示;

    (6) 点击login,如下图所示;

    (7) 运行脚本写入cookie中,如下图所示;

     (8) 脚本运行后会在cookie中增加一条如下图所示;

    (9) 打开审核元素,如下图所示;

    为什么这么简单啊

    (1) 打开链接发现是一个闯关,如下图所示;

    (2) 看到了这俩个要素,如下图所示;

    (3) 这点就类似于DDCTF 2018里边的web题目了,使用BurpSuite抓包并且修改HTTP头,如下图所示;

    (4) 点击GO,得到的返回结果如下图所示;

    (5) 得到第二关地址并且发现需要输入密码才可以获取flag,如下图所示;

    (6) 点击鼠标右键选择查看网页源代码,如下图所示;

    '

    (7) 点击源代码中的./password.js,如下图所示;

    (8) 发现一段base64代码,如下图所示;

    (9) 进行base64解密,如下图所示;

    (10) 输入密码并且点击获取flag,如下图所示;

    Sqli

    (1) 打开链接发现是一个登陆对话框,如下图所示;

    (2) 使用BurpSuite抓包,如下图所示;

    (3) 在登录对话框的username输入:-1’ OR (1=1*) or ‘,password输入x,如下图所示;

    (4) 把抓包内容保存成TXT,如下图所示;

    (5) 使用sqlmap注入,如下图所示;
    A. 注入命令语句,如下图所示;

    B. 注入结果,如下图所示;

    有种你来绕

    (1) 打开链接发现是一个登陆对话框,如下图所示;

     (2) 使用BurpSuite抓包并且登录尝试,如下图所示;

    (3) 通过返回结果得到用户名是admin,如下图所示;

    (4) 使用BurpSuite抓包并且进行注入,如下图所示;

    (5) 返回结果如下图所示:

    (6) 使用脚本跑密码,如下图所示;

    (7) 得到password密码为:nishishabi1438
    (8) 使用帐号密码登录,如下图所示;

    (9) 输入flag获取flag,如下图所示;

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    2019MCN网红新营销峰会于7月在上海开幕!
    2019以太坊开发者及应用峰会(北京)
    2019产品经理大会成都站将于6月正式起航!
    2019全球智慧零售大会将于5月30-31在厦门召开!
    2019全国融媒短视频峰会厦门站将于5月正式起航!
    2019创新中国春季峰会暨企业创新峰会于5月22-23日在上海召开!
    2019第四届新媒体千人峰会广州站将于6月正式开幕!
    DAMS2019中国数据智能管理峰会将于7月在上海召开!
    CSDI2019summit中国软件研发管理行业技术峰会深圳站来袭!
    JavaScript学习(六)
  • 原文地址:https://www.cnblogs.com/liang2580/p/9043194.html
Copyright © 2011-2022 走看看