분류 전체보기(323)
-
EZ_command_injection 풀이
/ping 페이지로 가보면 GET 방식으로 입력을 받습니다그리고 ipaddress.ip_address() 함수에 host 파라미터에 들어있는 값을 넘겨줍니다 ipaddress.ip_address()인수로 전달된 IP 주소에 따라 IPv4 또는 IPv6로 파싱IPv4Address() 또는 IPv6Address()를 써도 동일한 결과 https://docs.python.org/3/library/ipaddress.html#module-ipaddress ipaddress — IPv4/IPv6 manipulation librarySource code: Lib/ipaddress.py ipaddress provides the capabilities to create, manipulate and operate on ..
2024.05.11 -
NotSQL 풀이 (PW = FLAG)
보호되어 있는 글입니다.
2024.05.08 -
old-40 풀이
로그인 폼에 정보들이 적혀있습니다 적힌 그대로 login 버튼을 눌러주면 URL에 GET 형식으로 값이 전달됩니다폼에 적힌 기본값들을 하나씩 바꿔주면서 변화를 살펴봤습니다 no를 0으로 → 로그인 안됨no를 2로 → Failureid를 다른 값으로 → Failurepw를 다른 값으로 → Failure 로그인이 되는 경우와 안 되는 경우가 확실하게 나뉘는 걸 보니, Blind SQLi일 것 같습니다변화가 보이는 no에 SQL 구문을 넣어보겠습니다 위 사진과 같이 값을 변경하고 login 버튼을 눌렀더니 Success - guest가 출력됐습니다no에 0||id=0x61646d696e를 넣어주겠습니다(0x61646d696e = admin의 hex값) admin 계정의 비밀번호를 입력하라고 합니다결론적으로 이..
2024.05.04 -
old-29 풀이
파일 이름, 업로드 시간, IP가 작성되는 걸 확인할 수 있습니다페이지 소스에서는 확인할 수 있는게 없으니, 프록시로 패킷을 잡아보겠습니다 패킷의 form-data 부분에 name과 filename이 들어가 있습니다filename에 인젝션 구문을 넣어주는 형식이겠지만, 아직은 구조를 모르니 값을 넣어가며 테스트해야 할 것 같네요 hello', '50', '[작성자의 IP]');# 으로 값을 넣어주니 제대로 업로드가 됐습니다들어가는 순서가 filename, time, ip니까 아래와 같은 구조로 되어있겠네요INSERT INTO [table_name] VALUES(filename, time, ip);VALUES에 들어가는 값들이 어디에 위치하는지 알기 위해 DB 이름을 추출해 주겠습니다 filename="..
2024.05.02 -
phpMyRedis 풀이
index.php phpMyRedis Config Command ..
2024.04.28 -
sql injection bypass WAF Advanced 풀이
app.pyimport osfrom flask import Flask, requestfrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost')app.config['MYSQL_USER'] = os.environ.get('MYSQL_USER', 'user')app.config['MYSQL_PASSWORD'] = os.environ.get('MYSQL_PASSWORD', 'pass')app.config['MYSQL_DB'] = os.environ.get('MYSQL_DB', 'users')mysql = MySQL(app)template ='''SELECT..
2024.04.25