Skip to content

Commit 81594f8

Browse files
committed
last commit
1 parent 176df3c commit 81594f8

File tree

6 files changed

+32
-13
lines changed

6 files changed

+32
-13
lines changed

core/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ RUN pip install --no-cache-dir -r requirements.txt
1313
COPY ./ /app/
1414
RUN python manage.py collectstatic --noinput
1515

16-
ENTRYPOINT ["gunicorn", "plt.wsgi", "--worker-class gevent", "--workers=8", "--threads=2", "-b", "0.0.0.0:8000"]
16+
ENTRYPOINT ["gunicorn", "plt.wsgi", "--worker-class gevent", "--workers=32", "--threads=16", "-b", "0.0.0.0:8000"]

core/base/models.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class Meta:
5959
class Filter(models.Model):
6060
owner = models.ForeignKey(Team, on_delete=models.PROTECT)
6161
regex_rule_list = models.ManyToManyField(RegexRule, blank=True)
62-
max_len = models.PositiveSmallIntegerField(default=120)
62+
max_len = models.PositiveSmallIntegerField(default=150)
6363

6464
class Meta:
6565
abstract = True
@@ -72,6 +72,11 @@ class Meta:
7272

7373
class XssFilter(Filter):
7474
csp_rule_list = models.ManyToManyField(CspRule, blank=True)
75+
76+
def __init__(self, *args, **kwargs):
77+
self._meta.get_field('max_len').default = 50
78+
super(XssFilter, self).__init__(*args, **kwargs)
79+
7580
class Meta:
7681
verbose_name = "XSS 필터"
7782
verbose_name_plural = "XSS 필터들"

core/sqli/apps.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,11 @@ def query_sql(attack_team_name: str, target_team_name: str, query: str):
208208
sqli_log.return_value = res
209209
sqli_log.save()
210210

211-
return succeed, res, 200
211+
if not succeed:
212+
return False, "SQL 실행 중 오류가 발생했습니다.", 400
213+
if not res:
214+
return False, "정상적으로 실행되었으나 아무 값도 가져오지 않았습니다.", 200
215+
return True, "정상적으로 실행되고 특정한 값을 가져왔습니다. 그러나 내용을 알아보기는 힘듭니다.", 200
212216

213217

214218

core/sqli/views.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ class SqliView(LoginRequiredMixin, View):
1515
def post(self, request):
1616
form = SqlQueryForm(json.loads(request.body.decode("utf-8")))
1717
if not form.is_valid():
18-
return JsonResponse({
19-
'success': False,
20-
'message': '공격을 시도할 지구를 선택해야합니다.'
21-
}, status=400)
18+
form = SqlQueryForm(request.POST)
19+
if not form.is_valid():
20+
return JsonResponse({
21+
'success': False,
22+
'message': '공격을 시도할 지구를 선택해야합니다.'
23+
}, status=400)
2224

2325
success, result, status_code = query_sql(request.user.username, form.cleaned_data['team'], form.cleaned_data['query'])
2426
return JsonResponse({

core/utils/generator.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import random
22
import string
33

4+
5+
def random_int(length=5):
6+
return str(random.randint(10**length, 10**(length+1)-1))
7+
8+
49
def random_string(length=10):
510
return ''.join(random.choice(string.ascii_letters) for i in range(length))
611

12+
713
def random_flag(max_len=100):
8-
return 'PLUS{'+random_string(max_len-6)+'}'
14+
length = (max_len - 9) // 4
15+
return 'PLUS{'+random_int(length)+'.'+random_int(length)+'-'+random_int(length)+'.'+random_int(length)+'}'

core/xss/views.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ class XssView(LoginRequiredMixin, View):
2020
def post(self, request):
2121
form = XssQueryForm(json.loads(request.body.decode("utf-8")))
2222
if not form.is_valid():
23-
return JsonResponse({
24-
'success': False,
25-
'message': '공격을 시도할 지구를 선택해야합니다.',
26-
}, status=400)
27-
23+
form = XssQueryForm(request.POST)
24+
if not form.is_valid():
25+
return JsonResponse({
26+
'success': False,
27+
'message': '공격을 시도할 지구를 선택해야합니다.',
28+
}, status=400)
2829

2930
time_passed_after_last_attack = get_time_passed_after_last_attack(request.user.username, form.cleaned_data['team'])
3031
if XSS_INTERVAL - time_passed_after_last_attack > 0:

0 commit comments

Comments
 (0)