ctf20240129exam

  1. easymisc1
    文件里面是盲注日志,改后缀为.log,用vscode打开
    二分查找盲注,有!=,可以先解码url,也可以直接做,提取所有含有!=(url:%21%3D)的行,并用split取不等号后面的数字,依次转为字符,即可得flag
点击查看python代码
ff = []
with open('D:/网安/exam/1.easyMisc1.log', 'r') as file:
    for line in file:
        if '%21%3D' in line:
            ll = line.split('%21%3D')[1].split('%29%2C')[0]
            ff.append(ll)

for i in range(len(ff)):
    print(chr(int(ff[i])), end='')
  1. easymisc2
    文件解压后有20个子文件夹,每个子文件夹下有50个文件,每个文件内有一段字符串,提示flag在某一个文件内
    方法1:
    在大文件夹路径下wsl进kali,用grep:
    grep -rn "flag" *
    其中r表示递归,n表显示行号,可得falg
    方法2:
    直接把大文件夹丢到风二西flag查找工具里即可

  2. easyVBS
    用vscode打开,发现代码逻辑,读取出tbl,pwda,pwdb,反代码逻辑编写python代码:
    即可得密码

点击查看代码
tbl = "56|117|149|186|125|5|37|205|230|121|184|173|82|98|237|6|222|192|141|132|131|53|133|118|188|143|154|227|85|240|238|224|152|239|209|82|124|151|128|105|134|34|206|126|134|180|202|38|98|164|233|149|143|230|78|189|241|196|27|172|69|249|11|25|73|195|168|53|64|151|216|31|146|135|170|138|163|127|139|136|21|227|91|129|25|80|244|187|146|101|57|22|18|233|165|191|250|189|249|33|95|83|141|56|96|177|73|30|21|55|98|119|78|157|90|5|192|241|213|156|95|137|76|49|239|41|167|195|47|207|90|87|4|250|119|68|151|72|218|141|89|183|111|4|60|20|21|102|185|45|193|208|104|237|221|19|39|130|238|213|63|13|16|157|235|163|222|22|53|152|196|48|3|62|203|1|223|174|108|109|204|74|251|13|21|240|173|212|22|39|75|106|84|174|23|63|105|72|129|194|136|150|158|96|185|110|129|5|16|246|246|100|86|116|61|73|32|150|173|147|44|170|130|189|112|18|31|9|97|195|147|165|54|214|54|125|56|76|144|109|116|157|253|29|68|186|176|194|151|134|5|111|237|7|77|202".split('|')
tbl = [int(i) for i in tbl] 

pwda = "94|45|144|52|118|22|46|88|-39|-37|38|127|-11|-45".split('|')
pwda = [int(i) for i in pwda]  

pwdb = "157|24|6|107|251|35|94|67|136|199|12|34|97|202|188|31".split('|')
pwdb = [int(i) for i in pwdb] 

flag = []

for i in range(14):
    
    flag.append(tbl[i + pwdb[i]] - pwda[i])

flag_r = flag[::-1] 
FLAG = [chr(value) for value in flag_r] 
print(FLAG)

  1. easyChopper.pcap
    按提示x.tar.gz,查找POST的HTTP包,找到包含x.tar.gz的包,追踪http流,以原始数据格式复制回包信息数据,在010editor中新建十六进制文件,以十六进制数据粘贴,解压后可得flag

  2. easyReverse
    010editor打开,发现为linux系统下的可执行文件
    用wsl打开:
    ./5.easyReverse
    用ida64打开,发现一串base64加密后的字符串,解密得到flag1
    由于本地ida64配置有问题,flag2暂时未解出
    重新打包下载了ida64,可以F5看伪代码了,从伪代码静态分析代码逻辑来看,应该是字符串异或+拼接,看起来比较麻烦,所以用动态分析debug,环境配置参考链接:
    https://jev0n.com/2020/02/16/63.html
    尝试在此处下断点:

image
运行时输入正确的flag1,输入1111111作为flag2,F8单步调试,每一步看寄存器的值,可以发现flag2:

image

运行程序,flag正确:

image

可以改伪代码的变量类型,并用python插件来做!!!!!

  1. web1(公司网络环境)
    http://192.168.100.251:8000
    yakit目录扫描,发现/robots.txt,结合提示,访问/robots.txt,发现内容为另一个txt名称,重复操作依然是其他的txt名称,编写python代码:
点击查看代码
import requests
content='cfcd208495d565ef66e7dff9f98764da.txt'
url = 'http://192.168.100.251:8000/'+content

for i in range(100):
    response = requests.get(url)
    response.raise_for_status()
    content = response.text
    print(content)
    url = 'http://192.168.100.251:8000/'+content

点击查看运行结果
c4ca4238a0b923820dcc509a6f75849b.txt
c81e728d9d4c2f636f067f89cc14862c.txt
eccbc87e4b5ce2fe28308fd9f2a7baf3.txt
a87ff679a2f3e71d9181a67b7542122c.txt
e4da3b7fbbce2345d7772b0674a318d5.txt
1679091c5a880faf6fb5e6087eb1b2dc.txt
8f14e45fceea167a5a36dedd4bea2543.txt
c9f0f895fb98ab9159f51fd0297e236d.txt
45c48cce2e2d7fbdea1afc51c7c6ad26.txt
d3d9446802a44259755d38e6d163e820.txt
6512bd43d9caa6e02c990b0a82652dca.txt
c20ad4d76fe97759aa27a0c99bff6710.txt
c51ce410c124a10e0db5e4b97fc2af39.txt
aab3238922bcc25a6f606eb525ffdc56.txt
9bf31c7ff062936a96d3c8bd1f8f2ff3.txt
c74d97b01eae257e44aa9d5bade97baf.txt
70efdf2ec9b086079795c442636b55fb.txt
6f4922f45568161a8cdf4ad2299f6d23.txt
1f0e3dad99908345f7439f8ffabdffc4.txt
98f13708210194c475687be6106a3b84.txt
3c59dc048e8850243be8079a5c74d079.txt
b6d767d2f8ed5d21a44b0e5886680cb9.txt
37693cfc748049e45d87b8c7d8b9aacd.txt
1ff1de774005f8da13f42943881c655f.txt
8e296a067a37563370ded05f5a3bf3ec.txt
4e732ced3463d06de0ca9a15b6153677.txt
02e74f10e0327ad868d138f2b4fdd6f0.txt
33e75ff09dd601bbe69f351039152189.txt
6ea9ab1baa0efb9e19094440c317e21b.txt
34173cb38f07f89ddbebc2ac9128303f.txt
c16a5320fa475530d9583c34fd356ef5.txt
6364d3f0f495b6ab9dcf8d3b5c6e0b01.txt
182be0c5cdcd5072bb1864cdee4d3d6e.txt
e369853df766fa44e1ed0ff613f563bd.txt
1c383cd30b7c298ab50293adfecb7b18.txt
19ca14e7ea6328a42e0eb13d585e4c22.txt
a5bfc9e07964f8dddeb95fc584cd965d.txt
a5771bce93e200c36f7cd9dfd0e5deaa.txt
d67d8ab4f4c10bf22aa353e27879133c.txt
d645920e395fedad7bbbed0eca3fe2e0.txt
3416a75f4cea9109507cacd8e2f2aefc.txt
a1d0c6e83f027327d8461063f4ac58a6.txt
17e62166fc8586dfa4d1bc0e1742c08b.txt
f7177163c833dff4b38fc8d2872f1ec6.txt
6c8349cc7260ae62e3b1396831a8398f.txt
d9d4f495e875a2e075a1a4a6e1b9770f.txt
67c6a1e7ce56d3d6fa748ab6d9af3fd7.txt
642e92efb79421734881b53e1e1b18b6.txt
f457c545a9ded88f18ecee47145a72c0.txt
flag{l1fe_1s_sh0rt_y0u_need_pyth0n}

  1. web2(公司网络环境)
    http://192.168.100.251:8001
    在索引中源代码中发现:
    <button onclick="go()" style="display: none;">点我点我</button>
    发现按钮被隐藏,可以在元素里修改属性,将none删掉,则按钮可见,也可以直接在控制台运行go(),
    跳转后为一个小游戏,结合源代码,
点击查看代码

        var jdDsj2sSf2 = 0;
        function k() {
            jdDsj2sSf2 ++;
            jdDsj2sSf2 >= 9999 ? yo() : ho()
        }
        second = document.getElementById('second').innerText;
        setInterval(() => {
            if (second < 0 ) window.location = './index.html';
            document.getElementById('second').innerText = second--;
        }, 1000);

需要在120秒内磕头9999次,同理,可以修改所需的次数或函数执行逻辑,也可以直接在控制台运行yo()
可得flag

小结:

这次exam做的很糟糕,主要是工具使用还是有欠缺,vscode真好用
基本解题的思维还需要加强,以及代码上的补强。
题目还是做少了

下一步:

kali要看着重装,今天带工具的kali打开失败?
继续做reverse的flag2,ida64有问题?
看视频教程,多刷题多总结,每天10+题
要总结思路条理,搞清题目背后的知识点

posted @ 2024-01-29 20:01  RayW23  阅读(29)  评论(0)    收藏  举报